python-條件控制(if語句)

覓遠發表於2020-09-25

條件控制(if判斷語句)

If判斷語句就是通過判斷條件語句是否成立來決定後面的程式碼執行,如果條件表示式成立(Trun)就執行對應的程式碼,如果不成立(False)就不執行。

布林物件(bool)

條件控制和後面的迴圈都是通過判斷條件表示式的bool值來決定執行程式碼塊。布林物件的取值只有兩種:True和False,對應真(是/有)和假(否/無)。布林物件(bool)常用的表達條件:

布林表示式:布林表示式就是運算結果表示式。通常有以下幾種:

運算子

  • 相等:==
  • 不等:!=
  • 大於:>        
  • 小於:<     
  • 大於等於:>=     
  • 小於等於:<=

條件組合

  • 且(和)關係      and 有假為假
  • 或關係         or  有真為真
  • 非關係         not 是假即真,是真即假(將布林表示式的結果反過來)

條件組合表示式的運算優先順序:not>and>or  可以通過使用括號改變優先順序

if語句

判斷語句的關鍵字:if...elif...else...  (如果...否則如果(else if)...否則...)   

if語句可以沒有elif和else:如果只需要判斷的結果為是(Trun)時執行程式碼,其他結果不用執行,可以只有一個if...語句;如果判斷結果除了是執行這個程式碼,其他為否的執行另一個程式碼,那麼用if...else...語句;如果有多個(三個或三個以上)判斷條件,且每種條件下執行的程式碼各不相同,就用if...elif...else...語句。

例子:定義一個車輛計價器的函式

里程(公里)

收費(元/公里)

<=3

20

>3且<=10

18

>10且<=50

15

>50

10

def charge():
    
    miles = int(input("請輸入您的路程(公里):"))
    if miles <=3:
        print('20 元/每公里')
        return miles*20
    elif 3<miles <=10:
        print('18 元/每公里')
        return miles * 18
    elif 10<miles <=50:
        print('15 元/每公里')
        return miles * 15
    else:
        print('15 元/每公里')
        return miles*10
    
a = charge()
print(a,'元')

條件巢狀判斷

條件巢狀支援層層巢狀,每個巢狀語句下都可以再巢狀

仍然定義一個車輛計價器:

里程(公里)

時間(小時)

價格(元/公里)

<=5

小於等於0.5

20

大於0.5

18

>5

小於等於1.2

18

大於1.2

15

def charge_new():

    miles = int(input('請輸入您行駛的路程(公里):'))
    times = int(input("請輸入您行駛的時間(小時):"))
    if miles <= 5:
        if times <= 0.5:
            print('20 元/每公里')
            return miles * 20
        else:
            print('18 元/每公里')
            return miles * 18
    else:
        if times <= 1.2:
            print('18 元/每公里')
            return miles * 18
        else:
            print('15 元/每公里')
            return miles * 15
        
a = charge_new()
print(a,'元')

不巢狀的方法就是使用條件組合作為判斷條件:

def charge_new():
    
    miles = int(input('請輸入您行駛的路程(公里):'))
    times = int(input("請輸入您行駛的時間(小時):"))
    if miles <= 5 and times <= 0.5:
        print('20 元/每公里')
        return miles * 20
    if miles <= 5 and times > 0.5:
        print('18 元/每公里')
        return miles * 18
    if miles > 5 and times <= 1.2:
        print('18 元/每公里')
        return miles * 18
    if miles > 5 and times > 1.2:
        print('15 元/每公里')
        return miles * 15

a = charge_new()
print(a,'元')

三目運算

條件語句的三元運算(三目運算):把一個簡單的條件判斷寫成一行的形式。

三目運算的只適合簡單的if...else...形式的條件判斷語句

表示式語法:if的語句體 if 條件判斷語句 else else的語句體

if 1==1:
    print('符合條件:True')
else:
    print('不符合條件:False')

上面的簡單程式碼寫成三目運算的表示式:

print('符合條件:True') if 1==1 else print('不符合條件:False')

 

相關文章