1. 程式人生 > 其它 >【筆記】Python | 05 | if語句 | 5.3 if語句

【筆記】Python | 05 | if語句 | 5.3 if語句

if語句

理解條件測試後,就可以編寫if語句了。

簡單的if語句

age = 19
if age >= 18:
    print("You are old enough to vote!")

在if語句中,縮排的作用於for迴圈中相同,如果測試通過了,將執行if語句後所有縮排的程式碼行,否則將忽略它們。

if-else語句

我們需要在測試通過時執行一個操作,沒有通過時執行另一個操作。

age = 17
if age >= 18:
    print("You are old enough to vote!")
    print("Have you registered to vote yet?")
else:
    print("Sorry, you are too young to vote.")
    print("Please register to vote as soon as you turn 18!")

if-elif-else結構

經常需要檢查超過兩個的情形,在if-elif-else中,Python會依次檢查每個條件,直到遇到了通過的條件測試。

age = 12
if age < 4:
    print("Your admission cost is $0.")
elif age < 18:
    print("Your admission cost is $5.")
else:
    print("Your admission cost is $10.")

使用多個elif程式碼塊

age = 12
if age < 4:
    price = 0
elif age < 18:
    price = 5
elif age < 65:
    price = 10
else:
    price = 5
print("Your admission cost is $" + str(price) + ".")

省略else程式碼塊

Python並不要求if-else後必須有else程式碼塊,有些時候使用一條elif更清晰。

age = 12
if age < 4:
    price = 0
elif age < 18:
    price = 5
elif age < 65:
    price = 10
elif age >= 65:
    price = 5
print("Your admission cost is $" + str(price) + ".")

測試多個條件

if-elif-else功能強大,但僅適合用於只有一個條件滿足的情況,遇到通過的測試後,Python就忽略後面的測試。然而有時必須檢查關心的所有條件,此時應使用不包含elif

else的程式碼的if語句。

requested_toppings = ['mushroom', 'extra cheese']

if 'mushroom' in requested_toppings:
    print("Adding mushrooms.")
if 'prpperoni' in requested_toppings:
    print("Adding pepperoni.")
if 'extra cheese' in requested_toppings:
    print("Adding extra cheese.")

print("\nFinished making your pizza.")

練習題

5-3 外星人顏色1:射殺一個外星人,

建立一個alien_color的變數,設定為'green''yellow''red'。編寫一條if語句,檢查外星人是否是綠色,如果是,列印一條訊息,指出玩家獲得了5分。編寫第二個版本,在上述測試中沒有通過(無輸出)。

alien_color = 'green'
if alien_color == 'green':
    print("You've got 5 points.")
if alien_color == 'red':
    print("You've got 5 points.")

5-4 外星人顏色2:編寫一個if-else結構

如果外星人是綠色的,列印一條訊息,玩家得到5分。如果外星人不是綠色的,列印一條訊息,玩家得到10分。編寫另一個版本,將上述條件互換。

alien_color = 'red'
if alien_color == 'green':
    print("You've got 5 points.")
else:
    print("You've got 10 points.")

if alien_color == 'red':
    print("You've got 10 points.")
else:
    print("You've got 5 points.")

5-5 外星人顏色3

將上述if-else結構改為if-elif-else結構,如果外星人是綠色的,列印一條訊息,獲得5分;如果是黃色,得10分;如果紅色,15分。

alien_color = 'green'
if alien_color == 'green':
    print("You've got 5 points.")
elif alien_color == 'yellow':
    print("You've got 10 points.")
else:
    print("You've got 15 points.")

5-6 人生的不同階段

設定變數age的值,編寫一個if-elif-else結構,根據age判斷階段

  • 小於2歲,嬰兒
  • 2(含)-4歲,蹣跚學步
  • 4(含)-13歲,兒童
  • 13(含)-20歲,青少年
  • 20(含)-65歲,成年人
  • 大於65(含),老年人
age = 31
if age < 2:
    print("他是嬰兒。")
elif 2 <= age < 4:
    print("他正在蹣跚學步。")
elif 4 <= age < 13:
    print("他是兒童。")
elif 13 <= age < 20:
    print("他是青少年。")
elif 20 <= age < 65:
    print("他是成年人。")
else:
    print("他是老年人。")

5-7 喜歡的水果

建立一個列表,包含喜歡的水果,編寫獨立的if語句,檢查列表中是否包含特定的水果。

favorite_fruits = ['apple', 'cherry', 'grape', 'kiwi']
if 'banana' in favorite_fruits:
    print("Wow, I like banana.")
else:
    print("Why don't you get some bananas?")