條件判斷之if語句
if語句
每條if語句的核心都是一個值為True或False的表達式,這種表達式被稱為條件測試。Python根據條件測試的值為True還是False來決定是否執行if語句中的代碼。如果條件測試的值為True,Python就執行緊跟在if語句後面的代碼;如果為False,就忽略這些代碼。
age = 18 if age == 18: print (‘hello world‘) >>>hello world
#如果age不等於18,將沒有任何輸出。在if語句中,縮進的作用與for循環中相同。如果測試通過,將執行if語句後面所有縮進的代碼,否則將忽略他們。
if-esle語句
當條件測試通過時,執行一個操作,但是當條件測試沒有通過時,執行另一個操作。可以使用if-else語句,其中的else語句能夠在指定條件測試未通過時要執行的操作。
age = 18 if age == 19: print (‘hello world‘) else: print(‘hello‘) >>> hello
以上代碼之所以可行,是因為只存在兩種條件:age等於18或者不等於18。
if-elif-else語句
當需要檢查超過兩個條件時,應使用 if-elif-else 語句。Python只執行 if-elif-else 結構中的一個代碼塊,它一次檢查每個條件測試,直到遇到通過了的條件測試。測試通過後,Python將執行緊跟在他後面的代碼,並跳過余下的測試。
購票系統
- 4歲以下免費
- 4-18歲票價10元
- 18歲(含)以上票價20
age = 12 if age < 4: price = 0 elif age < 18: price = 10 else: price = 20 print(‘You admission cost is ‘ + str(price) + ‘.‘)
使用多個 elif 代碼塊
在購票系統中再增加一個條件:65歲(含)以上的老人,即可半價(10元)
age = 12 if age < 4: price = 0 elifage < 18: price = 10 elif age < 65: price = 20 else: price = 10 print(‘You admission cost is ‘ + str(price) + ‘.‘)
新增age<65條件,通過檢查確定年齡不到65歲後,才將票價設置為20,在else中,必須將值改為10,因為僅當年齡超過65時,才會執行這個操作。
省略else代碼塊
age = 12 if age < 4: price = 0 elif age < 18: price = 10 elif age < 65: price = 20 elif age >=65 price = 10 print(‘You admission cost is ‘ + str(price) + ‘.‘)
最後的elif代碼在年齡超過65(含)時,將價格設置為10,這樣修改後,每個代碼都在僅通過了相應的測試時才會執行。
else是一條包羅萬象的語句,只要不滿足任何if或elif中的條件測試,代碼就會執行。有可能會引入無效數據。如果知道最終要的測試的條件,應考慮使用一個elif來代替else。
測試多個條件
if-elif-else結構僅適合用於只有一個條件滿足的情況:遇到通過了的測試後,Python就跳過余下的測試。但是,有時候必須檢查所有關心的條件。這種情況下,應使用一系列不包含elif和else代碼的簡單if語句。在可能有多個條件為True,且需要在每個條件為True時都采取相應措施。
披薩加配料
1 requested_toppings = [‘mushrooms‘,‘extra cheese‘] 2 if ‘mushrooms‘ in requested_toppings: print (‘Adding mushrooms‘) 3 if ‘pepperoni‘ in requested_toppings: print (‘Adding pepperoni‘) 4 if ‘extra cheese‘ in requested_toppings: print (‘Adding extra cheese‘) 5 print (‘Finished making your pizza!‘)
1. 創建一個列表,包含配料。
2.檢查顧客是否點了配料 ‘mushrooms‘,如果點了,就打印一條確認消息。
3.檢查顧客是否點了配料 ‘pepperoni‘,此處用的是if語句,而不是elif或else語句;因此不管前面一個測試是否通過,都將進行這個測試。
4.檢查顧客是否點了配料‘ extra cheese‘,不管前面兩個測試的結果如何,都會執行這些代碼。
輸出結果
>>> Adding mushrooms
>>> Adding extra cheese
>>> Finished making your pizza!
條件判斷之if語句