一文完全掌握Python三大語句之順序、條件與循環(huán)
一、順序語句
我們目前接觸到的代碼,例如c、c++、Java等等,代碼執(zhí)行的順序都是按照從上到下的順序來執(zhí)行的,我們稱為順序語句
#順序語句 print('1') print('2') print('3')
這里我們的執(zhí)行結(jié)果一定為"123",而不會(huì)出現(xiàn)其他的"312"、"213"等,這種按照順序執(zhí)行的代碼(從上到下),就是順序語句
二、條件語句
2.1 什么是條件語句
條件語句能夠表達(dá)"如果.......就........" 這樣的語句意義,這構(gòu)成了我們計(jì)算機(jī)中基礎(chǔ)的邏輯判定
條件語句也叫分支語句,表示了接下來的邏輯可能有幾種走向(讓我們來舉個(gè)例子):
weather = input("今天下雨了嗎?(是/否): ") if weather == "是": print("??? 帶上傘") else: print("?? 不用帶傘")
??? 生活中的例子:要不要帶傘?
想象一下,你早上準(zhǔn)備出門去上課,走到門口,突然想到:
“如果今天下雨,我就帶傘;否則,就不帶雨傘。”
這句話聽起來是不是特別像我們平時(shí)的思考方式?這其實(shí)就是一條典型的條件語句!
- 其中“如果下雨”稱為條件,如果條件成立(真),則會(huì)出現(xiàn)“我就帶傘”這個(gè)情況
- 如果條件不成立(假),則會(huì)出現(xiàn)“就不帶雨傘”
2.2 條件語句的語法格式
2.2.1 縮進(jìn)和代碼塊
2.2.1.1 什么是代碼塊
在編程中,代碼塊就是一組“屬于同一個(gè)邏輯單元”的語句。
比如在 if
語句中:
if 條件: 這一行 這兩行 這三行 都是“條件成立時(shí)”才執(zhí)行的代碼
這“四行”就構(gòu)成了一個(gè)代碼塊——它們“同進(jìn)退”。
2.2.1.2 Python 的獨(dú)特之處:用縮進(jìn)定義結(jié)構(gòu)
在 C、Java、JavaScript 等語言中,代碼塊是用 {}
括起來的:
// C語言示例 if (age >= 18) { printf("成年"); printf("可以投票"); }
但在 Python 中,沒有 {}
,而是靠“縮進(jìn)”來表示誰屬于誰:
if age >= 18: print("成年") print("可以投票") # 沒有縮進(jìn) → 不再屬于 if print("程序結(jié)束")
2.2.1.3 縮進(jìn)的規(guī)則(必須掌握?。?/strong>
要點(diǎn) | 說明 |
---|---|
? 使用空格或 Tab | 推薦用 4 個(gè)空格(Python 官方建議) |
? 同一代碼塊必須對(duì)齊 | 同一級(jí)別的語句左對(duì)齊 |
? 不能混用空格和 Tab | 容易出錯(cuò)!建議編輯器設(shè)置“Tab 轉(zhuǎn) 4 空格” |
? 冒號(hào) : 后要縮進(jìn) | if , else , for , def 等后跟代碼塊,必須縮進(jìn) |
Python 中的條件語句主要有三種形式:
2.2.2 if語句 (如果……就……)
if 條件: 條件為真時(shí)執(zhí)行的代碼
?? ps:只有當(dāng)“條件”成立(結(jié)果為 True
)時(shí),才會(huì)執(zhí)行下面的代碼塊;否則跳過。
生活例子:鬧鐘提醒
如果 時(shí)間是早上7點(diǎn),就 播放起床鈴聲。
?? 只有當(dāng)
time
等于 7 時(shí),鬧鐘才會(huì)響。
2.2.3if-else語句
(二選一:如果……就……,否則……)
if 條件: 條件為真時(shí)執(zhí)行的代碼 else: 條件為假時(shí)執(zhí)行的代碼
?? PS:必選其一,要么走 if 分支,要么走 else 分支。
生活例子:看電影是否需要買票
如果 年齡 ≥ 12歲,就 需要買票;否則,免費(fèi)入場。
age = 10 if age >= 12: print("?? 請購買成人票") else: print("??? 兒童免費(fèi)入場")?? 年齡夠了買票,不夠就免費(fèi)——非此即彼。
2.2.4if-elif-else語句(多選一:多種情況判斷)
if 條件1: 滿足條件1時(shí)執(zhí)行 elif 條件2: 滿足條件2時(shí)執(zhí)行(但條件1不滿足) elif 條件3: 滿足條件3時(shí)執(zhí)行 else: 以上都不滿足時(shí)執(zhí)行
?? 說明:從上往下依次判斷,一旦滿足某個(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;
否則,只能喝白開水 ??budget = 25 # 你有25元 if budget >= 30: print("?? 豪華漢堡套餐 + 可樂 + 薯?xiàng)l") elif budget >= 20: print("?? 普通漢堡 + 可樂") elif budget >= 10: print("?? 薯?xiàng)l一份") else: print("?? 喝杯白開水吧")?? 輸出:?? 普通漢堡 + 可樂
2.2.5 語法要點(diǎn)提醒
要點(diǎn) | 說明 |
---|---|
? 冒號(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元:出“可樂”
- 投入 ≥ 3元:出“礦泉水”
- 否則:提示“金額不足”
money = float(input("請投入金額(元):")) if money >= 5: print("?? 可樂出來啦!") elif money >= 3: print("?? 礦泉水出來啦!") else: print("?? 金額不足,請投幣")
三、循環(huán)語句
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
來表達(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)的基本語法
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+=1
num = 1 —— 這是
while
循環(huán)的第一步:設(shè)置起始值
while num <= 10: —— 循環(huán)的判斷條件 注意:
條件檢查發(fā)生在每次循環(huán)開始前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é)束
?? 如果沒有這行,
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 基本語法格式
for 循環(huán)變量 in 可迭代對(duì)象: 循環(huán)體
注意:
- python的for和其他語言不同,沒有“初始化語句”,“循環(huán)條件判定語句”,“循環(huá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í),老師要檢查誰來了:
“對(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
- 左閉右開:包含左邊,不包含右邊
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 拆解每一部分:
部分 | 說明 | 示例 |
---|---|---|
for | 關(guān)鍵字,表示開始一個(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))
- 跳過當(dāng)前循環(huán),直接進(jìn)入下一次循環(huán)(比如遇到了不需要處理的數(shù)據(jù))
這就是
break
和continue
的作用!
5.2break:跳出整個(gè)循環(huán)
當(dāng)一個(gè)代碼在執(zhí)行過程中,如果遇到break,則會(huì)跳出整個(gè)代碼,不再執(zhí)行后續(xù)代碼
例子:找停車位
想象你在停車場里找車位:
“如果找到空位,就停車;否則繼續(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
后,跳過當(dāng)前循環(huán)的剩余部分,直接進(jìn)入下一次循環(huán)。
例子:過濾垃圾郵件
假設(shè)你要篩選郵件,跳過所有垃圾郵件:
emails = ["廣告", "工作機(jī)會(huì)", "優(yōu)惠券", "朋友來信", "廣告"] for email in emails: if email == "廣告": continue # 跳過廣告,不處理 print(f"閱讀: {email}")
遇到“廣告”,直接跳過,不打印也不做其他操作。
5.4 對(duì)比break和continue
關(guān)鍵字 | 功能 | 示例 |
---|---|---|
break | 提前結(jié)束整個(gè)循環(huán) | 找到空位后停止搜索 |
continue | 跳過當(dāng)前循環(huán),繼續(xù)下一次 | 遇到廣告跳過,繼續(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í),跳過本次循環(huán) print(i) # 輸出 1, 2, 4, 5,跳過了 3
總結(jié)
到此這篇關(guān)于Python三大語句之順序、條件與循環(huán)的文章就介紹到這了,更多相關(guān)Python順序、條件與循環(huán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中用字符串調(diào)用函數(shù)或方法示例代碼
字符串作為python中常用的數(shù)據(jù)類型,掌握字符串的常用方法十分必要。下面這篇文章主要給大家介紹了關(guān)于Python中通過字符串調(diào)用函數(shù)或方法的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08使用Python的web.py框架實(shí)現(xiàn)類似Django的ORM查詢的教程
這篇文章主要介紹了使用Python的web.py框架實(shí)現(xiàn)類似Django的ORM查詢的教程,集成的ORM操作數(shù)據(jù)庫向來是Python最強(qiáng)大的功能之一,本文則探討如何在web.py框架上實(shí)現(xiàn),需要的朋友可以參考下2015-05-05