W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Python條件語(yǔ)句是通過(guò)一條或多條語(yǔ)句的執(zhí)行結(jié)果(True或者False)來(lái)決定執(zhí)行的代碼塊。
Python 中 if 語(yǔ)句的一般形式如下所示:
if condition_1:
statement_block_1
流程圖如下所示:
這種if語(yǔ)句只有在符合條件的時(shí)候才會(huì)執(zhí)行代碼塊內(nèi)的代碼,是一種比較常見(jiàn)的用法。
另一種常見(jiàn)的用法是:
if condition_1:
statement_block_1
else:
statement_block_2
流程圖如下所示:
這種語(yǔ)句是一種常用的if-else語(yǔ)句,通常用于二分支結(jié)構(gòu)的條件語(yǔ)句代碼。
在一些時(shí)候,我們可能需要多分支的條件語(yǔ)句代碼,可以在if-else語(yǔ)句中混合elif語(yǔ)句進(jìn)行使用:
Python 中用 elif 代替了else if,所以if語(yǔ)句的關(guān)鍵字為:if – elif – else。
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
流程圖如下所示:
如果 "condition_1" 為 True 將執(zhí)行 "statement_block_1" 塊語(yǔ)句,如果 "condition_1" 為 False,將判斷 "condition_2",如果"condition_2" 為 True 將執(zhí)行 "statement_block_2" 塊語(yǔ)句,如果 "condition_2" 為 False,將執(zhí)行"statement_block_3"塊語(yǔ)句。
使用第一種常用的if語(yǔ)句搭配合適的條件可以實(shí)現(xiàn)第二種和第三種語(yǔ)句的全部效果,但在執(zhí)行效率和代碼可讀性上會(huì)變得比較糟糕。
注意:
在其他語(yǔ)言(比如說(shuō)經(jīng)典的C語(yǔ)言)中有一種多分支條件判斷語(yǔ)句,可以進(jìn)行模式匹配(通俗的講,就是將傳入的內(nèi)容跟多個(gè)已存在的樣例進(jìn)行比較,找到相同的案例并按照該案例的代碼進(jìn)行處理,如果沒(méi)有相同案例就按默認(rèn)案例進(jìn)行處理,可以查看其他編程語(yǔ)言的條件語(yǔ)句的Switch相關(guān)部分內(nèi)容進(jìn)行比較參考)。在python3.10中也引入了這樣的新特性。
match-case語(yǔ)句的結(jié)構(gòu)一般如下所示:
match variable: #這里的variable是需要判斷的內(nèi)容
case ["quit"]:
statement_block_1 # 對(duì)應(yīng)案例的執(zhí)行代碼,當(dāng)variable="quit"時(shí)執(zhí)行statement_block_1
case ["go", direction]:
statement_block_2
case ["drop", *objects]:
statement_block_3
... # 其他的case語(yǔ)句
case _: #如果上面的case語(yǔ)句沒(méi)有命中,則執(zhí)行這個(gè)代碼塊,類(lèi)似于Switch的default
statement_block_default
一個(gè)match語(yǔ)句的使用示例:
def http_error(status):
match status:
case 400:
return "Bad request"
case 404:
return "Not found"
case 418:
return "I'm a teapot"
case _:
return "Something's wrong with the Internet"
上述代碼等價(jià)于:
def http_error(status): if status == 400: return "Bad request" elif status == 404: return "Not found" elif status == 418: return "I'm a teapot" else: return "Something's wrong with the Internet"
關(guān)于模式匹配還有更多的用法,可以參考PEP636進(jìn)行詳細(xì)的學(xué)習(xí)。
以下實(shí)例演示了狗的年齡計(jì)算判斷:
age = int(input("Age of the dog: "))
print()
if age < 0:
print("This can hardly be true!")
elif age == 1:
print("about 14 human years")
elif age == 2:
print("about 22 human years")
elif age > 2:
human = 22 + (age -2)*5
print("Human years: ", human)
###
input('press Return>')
將以上腳本保存在 dog.py 文件中,并執(zhí)行該腳本:
python dog.py
Age of the dog: 1
about 14 human years
以下為 if 中常用的操作運(yùn)算符:
操作符 | 描述 |
---|---|
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
== | 等于,比較對(duì)象是否相等 |
!= | 不等于 |
只要返回結(jié)果為布爾型(true或者false)的,都可以作為if的條件,所以在之前的集合等內(nèi)容中涉及到的判斷元素是否在集合中的?
in
?和?not in
?,都可以作為if的條件。
# 程序演示了 == 操作符
# 使用數(shù)字
print(5 == 6)
# 使用變量
x = 5
y = 8
print(x == y)
以上實(shí)例輸出結(jié)果:
False
False
使用?in
?和?not in
?作為判斷條件:
thisset = set(("Google", "W3Cschool", "Taobao"))
if "W3Cschool" in thisset:
print("該元素在列表中")
if "baidu" not in thisset:
print("該元素不在列表中")
運(yùn)行結(jié)果如下:
該元素在列表中
該元素不在列表中
以下示例使用if語(yǔ)句來(lái)實(shí)現(xiàn)一個(gè)猜數(shù)字游戲(建議在本地環(huán)境嘗試):
#!/usr/bin/python3
# 該實(shí)例演示了數(shù)字猜謎游戲
number = 7
guess = -1
print("猜數(shù)字!")
while guess != number:
guess = int(input("請(qǐng)輸入你要猜的數(shù)字"))
if guess == number:
print("你猜中了,真厲害!")
elif guess < number:
print("猜小了,再猜猜?")
elif guess > number:
print("猜大了,在猜猜?")
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: