一文完全掌握Python三大語(yǔ)句之順序、條件與循環(huán)
一、順序語(yǔ)句
我們目前接觸到的代碼,例如c、c++、Java等等,代碼執(zhí)行的順序都是按照從上到下的順序來(lái)執(zhí)行的,我們稱為順序語(yǔ)句
#順序語(yǔ)句
print('1')
print('2')
print('3')
這里我們的執(zhí)行結(jié)果一定為"123",而不會(huì)出現(xiàn)其他的"312"、"213"等,這種按照順序執(zhí)行的代碼(從上到下),就是順序語(yǔ)句

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

