在本文中,您將學(xué)習(xí)如何在Python程序中使用if..else的不同形式來(lái)創(chuàng)建決策。
只有在滿足特定條件時(shí),我們才需要執(zhí)行代碼,這時(shí)就需要進(jìn)行決策。
if…elif…else語(yǔ)句在Python中用于決策。
if test expression: statement(s)
在這里,僅當(dāng)文本表達(dá)式 test expression 為T(mén)rue時(shí),程序才會(huì)評(píng)估并執(zhí)行語(yǔ)句。
如果文本表達(dá)式為False,則不執(zhí)行該語(yǔ)句。
在Python中,if語(yǔ)句的主體由縮進(jìn)指示。主體以縮進(jìn)開(kāi)始,直到第一條未縮進(jìn)的語(yǔ)句時(shí)結(jié)束。
Python將非零值作為T(mén)rue。None 和 0 被視作為False。
#如果數(shù)字是正數(shù),我們打印適當(dāng)?shù)南? num = 3 if num > 0: print(num, "這是一個(gè)正數(shù).") print("我始終會(huì)打印輸出.") num = -1 if num > 0: print(num, "這是一個(gè)負(fù)數(shù).") print("我也始終會(huì)打印輸出.")
運(yùn)行該程序時(shí),輸出為:
3 這是一個(gè)正數(shù). 我始終會(huì)打印輸出. 我也始終會(huì)打印輸出.
在上面的示例中,num > 0 是測(cè)試表達(dá)式。
if語(yǔ)句中,僅當(dāng)其值為T(mén)rue時(shí)才執(zhí)行的主體。
當(dāng)變量num等于 3 時(shí),測(cè)試表達(dá)式為 true,將執(zhí)行 if主體內(nèi)部 的語(yǔ)句。
如果變量num等于-1,則測(cè)試表達(dá)式為false,將跳過(guò) if主體內(nèi)部 的語(yǔ)句。
print()語(yǔ)句位于 if塊之外(未縮進(jìn))。因此,無(wú)論測(cè)試表達(dá)式如何,都將執(zhí)行它。
if test expression: if代碼塊主體 else: else代碼塊主體
if..else語(yǔ)句評(píng)估 test expression 并且if語(yǔ)句僅在測(cè)試條件為 True 時(shí)才執(zhí)行主體。
如果條件為 False,則執(zhí)行 else的主體??s進(jìn)用于分隔塊。
#程序檢查數(shù)字是正數(shù)還是負(fù)數(shù) #并顯示適當(dāng)?shù)南? num = 3 #嘗試這兩個(gè)值。 # num = -5 # num = 0 if num >= 0: print("0或正數(shù)") else: print("負(fù)數(shù)")
輸出結(jié)果
0或正數(shù)
在上面的示例中,當(dāng) num 等于3時(shí),測(cè)試表達(dá)式為 true,并且if的主體被執(zhí)行,else的主體被跳過(guò)。
如果num等于-5,則測(cè)試表達(dá)式為false,執(zhí)行else的主體,并且跳過(guò)if的主體。
如果num等于0,則測(cè)試表達(dá)式為true,if的主體被執(zhí)行,else的主體被跳過(guò)。
if test expression: Body of if elif test expression: Body of elif else: Body of else
elif是else if的縮寫(xiě)。它允許我們檢查多個(gè)表達(dá)式。如果If的條件為False,則檢查下一個(gè)elif塊的條件,依此類(lèi)推。
如果所有條件都為False,則執(zhí)行else的主體。
if...elif...else根據(jù)條件,在幾個(gè)塊中僅執(zhí)行一個(gè)塊。
if塊只能有一個(gè)else塊。但是它可以有多個(gè)elif塊。
'''在這個(gè)程序中 我們檢查數(shù)字是否為正或 負(fù)數(shù)或零且 顯示適當(dāng)?shù)南?'' num = 3.4 # 試試這兩個(gè)變化: # num = 0 # num = -4.5 if num > 0: print("正數(shù)") elif num == 0: print("0") else: print("負(fù)數(shù)")
當(dāng)變量num為正時(shí),輸出:正數(shù) 。
如果num等于0,輸出:零 。
如果num為負(fù)數(shù),輸出:負(fù)數(shù) 。
我們可以在另一個(gè)if...elif...else語(yǔ)句中包含一個(gè)if...elif...else語(yǔ)句。這在計(jì)算機(jī)編程中稱(chēng)為嵌套。
這些語(yǔ)句中的任何數(shù)目都可以彼此嵌套。縮進(jìn)是弄清楚嵌套級(jí)別的唯一方法。它們可能會(huì)造成混淆,因此除非有必要,否則必須避免使用它們。
'''在這個(gè)程序中,我們輸入一個(gè)數(shù)字 檢查數(shù)字是否為正或 負(fù)數(shù)或零并顯示 適當(dāng)?shù)男畔?這次我們使用嵌套的if語(yǔ)句''' num = float(input("輸入數(shù)字: ")) if num >= 0: if num == 0: print("零") else: print("正數(shù)") else: print("負(fù)數(shù)")
輸出1
輸入數(shù)字: 5 正數(shù)
輸出2
輸入數(shù)字: -1 負(fù)數(shù)
輸出3
輸入數(shù)字: 0 零