一般來說程式都是從第一行一直執行到最後一行,所以當我們想要程式在某些條件下做某些敘述的時候,就可以使用條件判斷,那就需要用到條件判斷來控制流程。以下是if判斷式(如果)
if (condition):
statement
要特別注意的是if跟condition之間要有一個空格,至於括號是可有可無的,另外Python如果遇到這種階層性架構不是像其它程式語言一樣使用大括號{},而是使用縮排來判斷,只要在同一層縮排就是屬於上方「:」的內容,因此縮排在 Python 中是十分重要的,非常非常非常的重要,這是新手很常犯的錯誤一定要特別注意!
舉個例子好了
age = int(input("enter your age: "))
if age > 18:
print("You are an adult")
不知道你還記不記得上一篇講到input()這個語法是用來讓使用者輸入的,輸入資料的型態會是string,如果要做數值比較的話必須先轉成int或是float。
但這樣子符合條件就執行,若不符合卻沒有任何動作,在實際應用上不太常見,理論上應該有要可以選擇的分支才對,所以Python還有更進階的if判斷式(如果⋯否則)
if condition:
statement1
else:
statement2
用中文來說就是如果condition為真,就會執行statement1,否則我就做statement2。
age = int(input("enter your age: "))
if age > 18:
print("You are an adult")
else:
print("You’re just a kid")
前面說的if…else比較像是二選一,但在現實中更常遇到的是有多種情況的多選一,當需要判斷的可能狀況有很多種時,就可以使用 if…elif…else 結構來達成需求。語法如下:
if conditionA:
statementA
elif conditionB:
statementB
elif conditionC:
statementC
else:
statementD
elif的數量並沒有限制,但還是不要無限制的設定太多條件,這樣不但影響執行速度可讀性也會大大降低。現在來做一個將輸入成績區分為 A-F 等 5 種等級的例子:
score = int(input("Enter your score: "))
if score >= 95:
print("A")
elif score >= 90:
print("B")
elif score >= 80:
print("C")
elif score >= 70:
print("D")
elif score >= 60:
print("E")
else:
print("F")
要注意的地方是如果是有包含關係的話,比較嚴苛的條件要放上面,你可以把它看成由上而下的單選題,只要符合最上面的條件就不會再往下看到其他條件了。像是90~95分B等,但我在設定條件的時候並不需要多此一舉的設score >= 90 and score < 95,因為高於95分的成績是不可能進入到第二層篩選的。