選擇敘述
到目前為止,程式都是從上到下一行一行執行。這一章要讓程式學會看情況做不同的事:條件成立就做這個,不然就做那個。
if:條件成立才做
Section titled “if:條件成立才做”if 後面接一個條件,條件成立時才執行底下縮排的那幾行。這裡的縮排很重要:Python 靠縮排來分辨哪些程式碼是 if 底下的。
score = int(input("你的分數:"))
if score >= 60: print("恭喜及格!")輸入 85,條件 score >= 60 成立,就印出那行。把分數改成 40 再送出一次,條件不成立,if 底下那行就整個被跳過。
if / else:兩條路
Section titled “if / else:兩條路”加上 else,就能在條件不成立時走另一條路。兩段一定只會執行其中一段:
score = int(input("你的分數:"))
if score >= 60: print("及格")else: print("不及格")if / elif / else:多條路
Section titled “if / elif / else:多條路”要分三種以上的情況,就用 elif(else if 的縮寫)。Python 由上往下逐一檢查,遇到第一個成立的條件就執行那段,剩下的全部跳過:
score = int(input("你的分數:"))
if score >= 90: print("優等")elif score >= 60: print("及格")else: print("不及格")因為是由上往下檢查,條件的順序有影響。這裡先問 >= 90,再問 >= 60;如果把兩個對調,90 分的人也會先撞到 >= 60 而被判成「及格」。
if 的條件通常是一個比較。常用的比較運算子有六個:
| 運算子 | 意思 |
|---|---|
== | 等於 |
!= | 不等於 |
> | 大於 |
< | 小於 |
>= | 大於等於 |
<= | 小於等於 |
要特別小心:判斷「相等」用的是兩個等號 ==,一個等號 = 是把值指定給變數,兩者意思完全不同。比較出來的結果是布林值 True 或 False。
要判斷一個數字落在某個範圍內,Python 可以像數學一樣把比較連起來寫。90 <= score <= 100 的意思就是「score 同時大於等於 90、又小於等於 100」:
score = int(input("你的分數:"))
if 90 <= score <= 100: print("優等")elif 60 <= score < 90: print("及格")else: print("不及格")這種寫法在分數分級這類題目很常見,比寫成 score >= 90 and score <= 100 更短也更好讀。
and / or / not:組合條件
Section titled “and / or / not:組合條件”一個條件不夠用時,可以用 and、or、not 把幾個條件組起來。
and:兩邊都成立,整體才成立。
age = int(input("你的年齡:"))
if age >= 13 and age <= 19: print("你是青少年")else: print("你不是青少年")or:只要有一邊成立,整體就成立。
day = input("今天星期幾?(填一到日)")
if day == "六" or day == "日": print("週末,放假!")else: print("要上班上課")not:把成立與不成立顛倒過來。not True 是 False,not False 是 True。
is_raining = False
if not is_raining: print("天氣不錯,出門不用帶傘")