PS
不好意思各位,由于最近筆者在參加全國大學生電子設計大賽,所以最近會出現停更的情況,望大家諒解,比賽結束后我會加大力度,火速講Python的知識給大家寫完
🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?🎖?
一、順序語句
我們目前接觸到的代碼,例如c、c++、Java等等,代碼執行的順序都是按照從上到下的順序來執行的,我們稱為順序語句
#順序語句
print('1')
print('2')
print('3')
這里我們的執行結果一定為"123",而不會出現其他的"312"、"213"等,這種按照順序執行的代碼(從上到下),就是順序語句
二、條件語句
2.1 什么是條件語句
條件語句能夠表達"如果.......就........"?這樣的語句意義,這構成了我們計算機中基礎的邏輯判定?
條件語句也叫分支語句,表示了接下來的邏輯可能有幾種走向(讓我們來舉個例子):
weather = input("今天下雨了嗎?(是/否): ")if weather == "是":print("🌧? 帶上傘")
else:print("?? 不用帶傘")
🌧? 生活中的例子:要不要帶傘?
想象一下,你早上準備出門去上課,走到門口,突然想到:
“如果今天下雨,我就帶傘;否則,就不帶雨傘。”
這句話聽起來是不是特別像我們平時的思考方式?這其實就是一條典型的條件語句!
- 其中“如果下雨”稱為條件,如果條件成立(真),則會出現“我就帶傘”這個情況
- 如果條件不成立(假),則會出現“就不帶雨傘”
2.2 條件語句的語法格式
2.2.1 縮進和代碼塊
2.2.1.1 什么是代碼塊
在編程中,代碼塊就是一組“屬于同一個邏輯單元”的語句。
比如在 if
語句中:
if 條件:這一行這兩行這三行都是“條件成立時”才執行的代碼
這“四行”就構成了一個代碼塊——它們“同進退”。
2.2.1.2?Python 的獨特之處:用縮進定義結構
在 C、Java、JavaScript 等語言中,代碼塊是用 {}
括起來的:
// C語言示例
if (age >= 18) {printf("成年");printf("可以投票");
}
但在 Python 中,沒有 {}
,而是靠“縮進”來表示誰屬于誰:
if age >= 18:print("成年")print("可以投票")
# 沒有縮進 → 不再屬于 if
print("程序結束")
2.2.1.3?縮進的規則(必須掌握!)
要點 | 說明 |
---|---|
? 使用空格或 Tab | 推薦用?4 個空格(Python 官方建議) |
? 同一代碼塊必須對齊 | 同一級別的語句左對齊 |
? 不能混用空格和 Tab | 容易出錯!建議編輯器設置“Tab 轉 4 空格” |
? 冒號?: ?后要縮進 | if ,?else ,?for ,?def ?等后跟代碼塊,必須縮進 |
Python 中的條件語句主要有三種形式:
2.2.2?if語句?(如果……就……)
if 條件:條件為真時執行的代碼
🔹 ps:只有當“條件”成立(結果為 True
)時,才會執行下面的代碼塊;否則跳過。
生活例子:鬧鐘提醒
如果 時間是早上7點,就 播放起床鈴聲。
👉 只有當
time
等于 7 時,鬧鐘才會響。
?2.2.3?if-else
?語句
(二選一:如果……就……,否則……)
if 條件:條件為真時執行的代碼
else:條件為假時執行的代碼
🔹 PS:必選其一,要么走 if 分支,要么走 else 分支。
?生活例子:看電影是否需要買票
如果 年齡 ≥ 12歲,就 需要買票;否則,免費入場。
age = 10if age >= 12:print("🎫 請購買成人票") else:print("🎟? 兒童免費入場")
👉 年齡夠了買票,不夠就免費——非此即彼。
2.2.4?if-elif-else
?語句(多選一:多種情況判斷)
if 條件1:滿足條件1時執行
elif 條件2:滿足條件2時執行(但條件1不滿足)
elif 條件3:滿足條件3時執行
else:以上都不滿足時執行
🔹 說明:從上往下依次判斷,一旦滿足某個條件,就執行對應代碼,然后跳出整個結構。
生活例子:點餐根據預算選擇套餐
如果 預算 ≥ 30元,點豪華漢堡套餐;
否則如果 預算 ≥ 20元,點普通漢堡;
否則如果 預算 ≥ 10元,點薯條;
否則,只能喝白開水 😅budget = 25 # 你有25元if budget >= 30:print("🍔 豪華漢堡套餐 + 可樂 + 薯條") elif budget >= 20:print("🍔 普通漢堡 + 可樂") elif budget >= 10:print("🍟 薯條一份") else:print("💧 喝杯白開水吧")
👉 輸出:
🍔 普通漢堡 + 可樂
2.2.5?語法要點提醒?
要點 | 說明 |
---|---|
? 冒號?: | 每個?if ,?elif ,?else ?后面必須加冒號! |
? 縮進 | 條件后的代碼必須縮進(一般用 4 個空格),表示“屬于這個分支” |
? 條件是布爾表達式 | 條件的結果必須是?True ?或?False ,比如:age >= 18 ,?name == "張三" |
? 不要寫成?= | 判斷相等用?== ,不是賦值的?= ! |
2.2.5 模擬自動售貨機
假設一臺飲料機,根據投入的金額出貨:
- 投入 ≥ 5元:出“可樂”
- 投入 ≥ 3元:出“礦泉水”
- 否則:提示“金額不足”
money = float(input("請投入金額(元):"))if money >= 5:print("🥤 可樂出來啦!")
elif money >= 3:print("💧 礦泉水出來啦!")
else:print("?? 金額不足,請投幣")
?三、循環語句
3.1 while循環
循環是讓程序“自動重復做事情”的核心工具,而 while
是其中最直觀、最接近人類思維的一種。
3.1.1 什么是while循環
while
在英文中是“當……的時候”。在 Python 中,它的意思是:
“當某個條件成立時,就一直重復執行某些代碼。”
這就像我們生活中的很多“重復行為”。
生活例子:刷碗直到干凈
想象你吃完飯后要洗碗:
“當碗還不干凈時,就繼續刷。”
這個邏輯就可以用 while
來表達!
# 假設 clean 是“是否干凈”的狀態
clean = False# 當“不干凈”時,就繼續刷
while not clean: print(" 正在刷碗...")# 假設刷一次就干凈了clean = Trueprint(" 碗洗好了!")
?
not clean
表示“還不干凈”,一旦clean = True
,條件不成立,循環結束。
3.2?while
?循環的基本語法
while 條件:循環體
- 條件為真(ture),則執行循環代碼
- 條件為假(False) ,結束循環
代碼示例:打印 1~10的整數
# 打印1~10的整數
num = 1
while num <= 10:print(num)num+=1
num = 1 ——?這是?
while
?循環的第一步:設置起始值
while num <= 10: —— 循環的判斷條件 注意:
條件檢查發生在每次循環開始前print(num) —— 循環打印1~10
num += 1:
- 這是更新變量的關鍵步驟
num += 1
?等價于?num = num + 1
- 每次循環結束時,
num
?的值增加1- 這樣才能讓循環最終結束
?? 如果沒有這行,
num
永遠是1,條件永遠為True
→ 死循環!
代碼示例:打印 1~100的和
# 1~100的和
sum = 0
num = 1
while num <= 100:sum += numnum += 1
print(sum)
代碼示例:求1! + 2! + 3! + 4! + 5!?
# 代碼示例:求1! + 2! + 3! + 4! + 5!?
num = 1
sum = 0
while num <= 5:factorResult = 1i = 1while i <= num:factorResult *= ii += 1sum += factorResultnum += 1
print(sum)
這個示例會復雜一些,用到了兩個while,循環嵌套
四、for循環
4.1 基本語法格式
for 循環變量 in 可迭代對象:循環體
注意:
- python的for和其他語言不同,沒有“初始化語句”,“循環條件判定語句”,“循環變量更新語句”,而是更加簡單
例子1:用?range()
?打印1到10?
for num in range(1, 11):print(num)
- 使用range函數能夠生成一個可迭代對象,生成的范圍是[1,11),也就是[1,10] 下面舉一個例子給大家加深range知識點的記憶
例子2:老師點名
想象一下上課時,老師要檢查誰來了:
“對每一個學生,都喊一次名字”
students = ["小明", "小紅", "小剛", "小麗"]for student in students:print(f"到!{student}")
核心例子1:用?range()
?生成數字序列
for i in range(1, 6):print(i)
??重點解析?range()
:
range(1, 6)
?不是數字,而是一個“數字生成器”- 它會生成:1, 2, 3, 4, 5
- 左閉右開:包含左邊,不包含右邊
i
?是循環變量,依次取這些值
核心例子2:“快遞員送快遞”
想象一個快遞員要送5個包裹:
packages = ["A", "B", "C", "D", "E"]for pkg in packages:print(f" 正在派送包裹 {pkg}")
print(" 全部送達!")
packages
?是“待送包裹清單”pkg
?是當前正在送的包裹- 每送一個,自動取下一個
- 送完自動結束
?4.2 拆解每一部分:
部分 | 說明 | 示例 |
---|---|---|
for | 關鍵字,表示開始一個 for 循環 | 固定寫法 |
變量 | 臨時存放當前元素的“容器” | student ,?num ,?char |
in | 關鍵字,表示“在……之中” | 固定寫法 |
可迭代對象 | 能被“一個一個取出”的數據 | 列表、字符串、range() |
: | 冒號!必須有! | 否則報錯 |
縮進代碼 | 循環體,屬于 for 的代碼塊 | 必須縮進(4空格) |
五、break和continue
5.1 ?為什么需要?break
?和?continue
有時候我們希望:
- 提前結束整個循環(比如找到了目標)
- 跳過當前循環,直接進入下一次循環(比如遇到了不需要處理的數據)
這就是
break
和continue
的作用!
5.2?break
:跳出整個循環
當一個代碼在執行過程中,如果遇到break,則會跳出整個代碼,不再執行后續代碼
例子:找停車位
想象你在停車場里找車位:
“如果找到空位,就停車;否則繼續找。”
parking_spaces = ["滿", "滿", "空", "滿", "滿"]for space in parking_spaces:if space == "空":print(" 找到空位!")break # 找到了,不用再找了!else:print(" 繼續尋找...")
這里大家就可以看到,找到空位后,也就是代碼執行到了break,就會跳出1整個代碼,不再執行下去
?
5.3 continue:跳出當前循環
遇到?continue
?后,跳過當前循環的剩余部分,直接進入下一次循環。
例子:過濾垃圾郵件
假設你要篩選郵件,跳過所有垃圾郵件:
emails = ["廣告", "工作機會", "優惠券", "朋友來信", "廣告"]for email in emails:if email == "廣告":continue # 跳過廣告,不處理print(f"閱讀: {email}")
遇到“廣告”,直接跳過,不打印也不做其他操作。?
5.4?對比?break
?和?continue
關鍵字 | 功能 | 示例 |
---|---|---|
break | 提前結束整個循環 | 找到空位后停止搜索 |
continue | 跳過當前循環,繼續下一次 | 遇到廣告跳過,繼續看下一封 |
# `break` 示例
for i in range(1, 6):if i == 3:break # 當 i=3 時,直接跳出循環print(i) # 只會輸出 1 和 2print("跳出循環")# `continue` 示例
for i in range(1, 6):if i == 3:continue # 當 i=3 時,跳過本次循環print(i) # 輸出 1, 2, 4, 5,跳過了 3