iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 5
0

要在某條件成立時才進行某些動作,Python提供了if運算式,if可以搭配else,在if條件不成立時,執行else中定義的程式碼

  • 數字的檢測

範例如下 :

age=21 # 定義一個變數值為20

if age>=20 : # 判斷變數值是否大於20
    print("can vote") # 若大於20印出can vote
else : # 變數值沒有大於20就執行else區塊
    print("can't vote") # 進入else區塊後印出can't vote

上面程式碼第一行的部分先定義一個age變數值為21,接下來在第三行進入if陳述句,判斷如果age大於20的話就print("can vote"),如果age沒有大於20的話就進入第五行的else,然後print("can't vote")

輸出結果 :

can vote
  • 字串的檢測

範例如下 :

names=["bonny","jack","rose"] # 建立一個names串列

for name in names : # 告知python從names串列中取出名字,並將取出的名字存到name變數中
    if name=="bonny" : # 判斷如果name等於bonny
        print(name.upper()) #等於bonny就把bonny變全部大寫 
    else : # 如果name不等於bonny
        print(name) #不等於bonny就直接把name印出

輸出結果 :

BONNY
jack
rose

為甚麼比對是否相等時要用兩個等於呢?如果是一個等於的話,python會把name="bonny"解讀成將name變數指定成bonny,如果是兩個等於的話,python會把name=="bonny"解讀成name變數的值等於bonny嗎?


檢測多個條件

  • 用and檢測

用and關鍵字把每個條件連起來,如果每個條件都是True的話整條條件式就為True,但只要有一個條件沒通過,整個條件式就會是False

  • 用or檢測

用or關鍵字把每個條件連起來,它和and不同的是,or只要一個條件是True就可以讓整個條件式為True,or關鍵字只會在全部的條件是False的時候,才會讓整個條件式是False

範例如下 :

a = 5
b = 6
c = 4

if a>c and b>a : # a>c和b>a都是正確敘述,所以會跳到下一行印出句子
    print("Both conditions are True")

if a>c or b<a :  # a>c是正確敘述,b<a是錯誤敘述,但因為or只要其中一個條件正確就可以通過,所以會跳到下一行印出句子
    print("At least one of the conditions are True")

輸出結果 :

Both conditions are True
At least one of the conditions are True

if-elif-else範例

這個部分是要來講解if陳述句其實不只有if-else這種寫法,當我們需要檢測超過兩種以上的條件時,我們可以用到if-elif-else,python只會執行if-elif-else路徑中的一個程式區塊,它會依序檢測每個條件,直到碰到符合條件的檢測,在通過檢測後,python才會執行緊接在後面的程式區塊,並跳過其他剩下的檢測

譬如說去百貨公司買東西時,有金卡、銀卡和一般卡的會員我們會給予不同的折扣,這時我們就可以用if-elif-else來寫

範例如下 :

card="gold" # 定義card變數是gold

if card=="gold" : 
    print("30% off") # 如果card等於gold印出打7折
elif card=="silver" :
    print("20% off") # 如果card等於silver印出打8折
else :
    print("10% off") # 如果不是gold也不是silver則印出打9折

輸出結果 :

30% off

我們也可以用多個elif程式區塊,範例如下 :

score=87

if score==100 :
    print("A+") # score等於100印出A+
elif 90<=score<100 :
    print("A") # score介於90~99印出A
elif 80<=score<90 :
    print("B") # score介於80~89印出B
elif 70<=score<80 :
    print("C") # score介於70~79印出C
elif 60<=score<70 :
    print("D") # score介於60~69印出D
else :
    print("F") # score不在以上範圍內印出F

輸出結果 :

B

HackMD網址 : https://hackmd.io/hs4dY0H3Tby6rgRR8jKYqw?both

今天結束,各位明天見 !!


資料來源:<<python程式設計的樂趣>>-Eric Matthes著/H&C譯


上一篇
DAY 04 串列的操作與運用
下一篇
DAY 06 if 陳述句應用
系列文
初學者Python的應用實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言