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