Python if else語句詳解

2020-07-16 10:05:24
條件語句根據條件判斷表示式的值決定後續執行程式的順序。Python 中支援三種實質上大同小異的條件語句,分別是 if 語句、if…else… 語句和 if…elif…else…語句,本節教學就來具體介紹。

if語句

if 語句的主要語法形式如下:

if 條件表示式:
    語句


當條件表示式計算結果為 True 時,執行下一行縮排的語句;若條件表示式計算結果為 False,則跳過該條語句繼續向下執行。例如:

if 2>1:
    print('2大於1')

上述程式碼的執行結果如下所示:

>>> if 2>1:
    print('2大於1')

2大於1


if 及其衍生的條件判斷語句是目前各種高階程式設計語言的核心之一。

Python 的 if 類條件判斷語句與其他語言不同之處主要有三點:
  • 一是條件表示式無須外加括號;
  • 二是條件表示式後加冒號;
  • 三是條件表示式為True時執行的語句不加大括號,但需要遵循Python語法的縮排原則,使用縮排來劃分語句塊,相同縮排數的語句在一起組成一個語句塊。

if…else…語句和if…elif…else…語句

if…elif…else… 語句的語法形式如下:

if 條件表示式1:
    語句1
elif 條件表示式2:
    語句2
elif ……
else:
    語句3


當條件表示式 1 計算結果為 True 時,執行語句 1;當條件表示式 2 計算結果為 True 時,執行語句 2;若 else 之前的條件表示式計算結果均為 False,執行語句 3。例如:

a=1
b=2

if a<b:
    print('a<b')
elif a==b:
    print('a=b')
elif a>b:
    print('a>b')
else :
    print ('未知')

上述程式碼的執行結果下所示:

>>> a=1
>>> b=2
>>> if a<b:
    print('a<b')
elif a==b:
    print('a=b')
elif a>b:
    print('a>b')
else :
    print ('未知')

a<b

if…elif…else… 語句中的 elif 和 else 部分不是必需的,省略 elif 及對應的語句後就變成了 if…else… 語句,再省略 else 部分後就變成了 if 語句,也可只有 if…elif… 結構。

if巢狀

if 類語句支援巢狀使用,例如:

a=4
b=2
c=3

if a<b:
    print('a<b')
elif a==b:
    print('a=b')
elif a>b:
    if b>c:
        print ('a>b 且 b>c')
    elif b==c:
        print ('a>b 且 b=c')
    elif b>c:
        print ('a>b 且 b〉c')
    else :
        print ('a>b')
else :
    print ('未知')

上述程式碼的執行結果如下所示:

>>> a=4
>>> b=2
>>> c=3
>>> if a<b:
    print('a<b')
elif a==b:
    print('a=b')
elif a>b:
    if b>c:
        print ('a>b 且 b>c')
    elif b==c:
        print ('a>b 且 b=c')
    elif b>c:
        print ('a>b 且 b〉c')
    else :
        print ('a>b')
else :
    print ('未知')
   
a>b

溫馨提示:Python 沒有 switch…case… 語句,Python 的發明人認為 Python 不需要 switch…case… 語句,因為用 if…elif…elif…else… 序列很容易來實現 switch…case… 語句。