條件語句是 Python 實現(xiàn)分支邏輯的核心工具,它能讓程序根據(jù)不同的條件判斷結(jié)果,執(zhí)行不同的代碼塊,從而實現(xiàn)靈活的邏輯處理(如判斷用戶權(quán)限、分類處理數(shù)據(jù)等)。Python 的條件語句主要通過if、elif和else關(guān)鍵字實現(xiàn),支持多層嵌套,可應(yīng)對復(fù)雜的判斷場景。掌握條件語句的基本寫法和嵌套規(guī)則,是編寫具有決策能力程序的基礎(chǔ)。
一、Python 條件語句的基本寫法
Python 條件語句通過判斷 “條件表達式” 的布爾值(True或False)決定執(zhí)行路徑,基本結(jié)構(gòu)包括單分支、雙分支和多分支三種形式。
(一)單分支結(jié)構(gòu)(if)
當只需在條件滿足時執(zhí)行某段代碼,不滿足時不做處理,使用單分支if語句,語法格式為:
if 條件表達式: # 條件為True時執(zhí)行的代碼塊(需縮進)
示例:判斷數(shù)字是否為正數(shù)
num = 5if num > 0: print(f"{num}是正數(shù)") # 條件成立,輸出結(jié)果
(二)雙分支結(jié)構(gòu)(if-else)
當條件滿足和不滿足時需執(zhí)行不同代碼塊,使用if-else結(jié)構(gòu),語法格式為:
if 條件表達式: # 條件為True時執(zhí)行的代碼塊else: # 條件為False時執(zhí)行的代碼塊
示例:判斷數(shù)字是正數(shù)還是非正數(shù)
num = -3if num > 0: print(f"{num}是正數(shù)")else: print(f"{num}不是正數(shù)") # 條件不成立,執(zhí)行else塊
(三)多分支結(jié)構(gòu)(if-elif-else)
當需要判斷多個條件(且條件之間互斥)時,使用if-elif-else結(jié)構(gòu),elif可理解為 “else if”,語法格式為:
if 條件1: # 條件1為True時執(zhí)行elif 條件2: # 條件1為False、條件2為True時執(zhí)行elif 條件3: # 前序條件均為False、條件3為True時執(zhí)行else: # 所有條件均為False時執(zhí)行(可選)
示例:根據(jù)分數(shù)評級
score = 85if score >= 90: print("優(yōu)秀")elif score >= 80: print("良好") # 85滿足該條件,輸出"良好"elif score >= 60: print("及格")else: print("不及格")
注意:多分支結(jié)構(gòu)中,條件判斷具有 “短路性”—— 一旦某個條件成立,后續(xù)條件將不再判斷,直接執(zhí)行對應(yīng)代碼塊后退出整個結(jié)構(gòu)。
二、if-elif-else 的嵌套使用
當判斷邏輯包含多層條件(如 “先判斷大類,再判斷小類”)時,可在條件語句的代碼塊中嵌套另一個條件語句,形成多層分支結(jié)構(gòu)。
(一)嵌套的基本格式
if 外層條件: # 外層條件為True時執(zhí)行 if 內(nèi)層條件1: # 內(nèi)層條件1為True時執(zhí)行 else: # 內(nèi)層條件1為False時執(zhí)行else: # 外層條件為False時執(zhí)行 # 可繼續(xù)嵌套其他條件語句
(二)嵌套示例
用戶登錄驗證:先判斷用戶名是否正確,再判斷密碼
username = "admin"password = "123456"input_user = "admin"input_pwd = "123456"if input_user == username: print("用戶名正確") if input_pwd == password: print("密碼正確,登錄成功") # 內(nèi)層條件成立 else: print("密碼錯誤")else: print("用戶名不存在")
多層嵌套的分數(shù)評級:先判斷是否及格,再細分優(yōu)良等級
score = 75if score >= 60: print("及格") if score >= 90: print("等級:優(yōu)秀") elif score >= 80: print("等級:良好") else: print("等級:及格") # 75屬于此分支else: print("不及格,需補考")
(三)嵌套的注意事項
縮進規(guī)范:嵌套的代碼塊需比外層多一層縮進(通常為 4 個空格),縮進錯誤會導(dǎo)致邏輯混亂或語法錯誤。
邏輯清晰:嵌套層數(shù)不宜過多(建議不超過 3 層),否則代碼可讀性差,可通過拆分函數(shù)優(yōu)化。
條件順序:內(nèi)層條件依賴外層條件的結(jié)果,需確保外層條件判斷正確后再執(zhí)行內(nèi)層邏輯。

三、條件表達式的常見形式
條件語句中的 “條件表達式” 可以是各種返回布爾值的表達式,常見形式包括:
比較運算:==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。
示例:age >= 18、name == "Alice"。
邏輯運算:結(jié)合多個條件,and(與,均為 True 才成立)、or(或,任一為 True 即成立)、not(非,取反)。
示例:
# 判斷年齡在18到30歲之間age = 25if age >= 18 and age <= 30: print("青年")
成員判斷:in(是否包含)、not in(是否不包含)。
示例:
fruits = ["apple", "banana"]if "apple" in fruits: print("包含蘋果")
真值判斷:直接使用變量或表達式的真值(如非 0 數(shù)字、非空字符串為 True,0、空字符串、None為 False)。
示例:
username = "admin"if username: # 非空字符串為True print("用戶名已輸入")
四、條件語句的典型應(yīng)用場景
用戶權(quán)限控制:根據(jù)用戶角色(管理員、普通用戶)顯示不同功能菜單。
數(shù)據(jù)過濾:從列表中篩選出滿足條件的元素(如篩選價格低于 100 的商品)。
流程分支:根據(jù)用戶輸入的指令執(zhí)行不同操作(如下單、查詢、退出)。
錯誤處理:判斷輸入數(shù)據(jù)是否合法(如年齡是否為正數(shù)、郵箱格式是否正確)。
五、常見錯誤與優(yōu)化技巧
混淆=與==:=是賦值運算符,==是比較運算符,條件中誤用=會導(dǎo)致語法錯誤(如if num = 5)。
冗余的條件判斷:可通過邏輯運算簡化多個條件,例如將if a > 5: if b > 10簡化為if a > 5 and b > 10。
使用條件表達式簡化代碼:對于簡單的雙分支邏輯,可使用結(jié)果1 if 條件 else 結(jié)果2的表達式形式,例如:
result = "及格" if score >= 60 else "不及格" # 等價于if-else結(jié)構(gòu)
Python 的條件語句通過簡潔的縮進和關(guān)鍵字,實現(xiàn)了清晰的分支邏輯。if-elif-else結(jié)構(gòu)適合處理多條件判斷,而嵌套則能應(yīng)對復(fù)雜的層級邏輯。使用時需注意縮進規(guī)范和條件順序,避免因邏輯混亂導(dǎo)致錯誤。熟練掌握條件語句,能讓程序具備根據(jù)實際情況動態(tài)決策的能力,是實現(xiàn)復(fù)雜業(yè)務(wù)邏輯的基礎(chǔ)。