Python趣味入門4:選擇往往是最重要的-條件語句
人生處處有選擇,程式也有選擇,為了讓程式變得更加強壯,程式設計師必須考慮任何情況,上一篇了解到了如何使用Python來行順序語句的編寫,我們寫了一個可以輸入姓名的生日祝賀程式,今天我們挑戰條件語句!
1、條件語句
現實總是可悲的,人生的很多選擇都是無法重現的,比如你選擇了Python看到了這篇教程(恭喜你,做了無比正確的決定!)你永遠無法知道,如果你之前選擇了Java現在看的是什麼教程。
但是程式必須考慮到選擇的所有情況,因為程式是不斷地被運行的,天知道有什麼條件會觸發特定動作。傳說,俄羅斯的核按鈕隨身跟著總統,也許裡面的觸發條件語句永遠不會運行,但總要有人去寫它。
條件語句的寫法如下,條件成立和不成立都是子語句因此必須縮進:
if 判斷表達式:
條件成立
else:
條件不成立
小牛叔在疫情期間每天上班,都需要掃描二維碼填寫健康申報,會詢問你14天內有沒有去過湖北,如果有就會提示你有風險,如果沒有就提示無風險。這個程式怎麼寫呢?
if input('您在14內去過湖北嗎?')=='是': print('您有風險!') else: print('暫無風險!')
大家在寫程式碼時,要注意如下的幾個問題:
- 小寫:所有的語句大小寫敏感,大部分語句都是小寫,除非規定大寫。
- 縮進: 子語句必須要縮進,否則程式會出錯。
- 可省略else:可以省略else以及子語句表示不滿足條件時,直接向下運行。
- 等號:判斷相等必須使用兩個等號
- 冒號:if和else後面都要跟冒號,表示下行的語句是子語句,縮進會有變化。
2、邏輯判斷
if語句後緊跟著就是邏輯判斷,如下把兩個數字或變數連接在一起的就是邏輯判斷:
- == 相等
- >大於
- <小於
- >= 大於等於
- <= 小於等於
- != 不等於
- is 是不是類型 (is None 是不是為空)
- in 被包含其中 (’a’ in ‘abc’的值是真)
以上邏輯判斷表達式的結果只有兩個:True或是False (注意首字線必須大寫)。
此外,如下的這些表達式結果都是False:
“” #空字元串
” #空字元串
[ ] #空列表
( ) #空元組
{ } #空字典
None #空值
3、邏輯運算
多個條件的組合可以使用: not, and, or。如果要求10歲以上的學生在疫情期間開學,其判斷程式要求:14天未出城並且年齡>=10。 就可以這麼寫條件:
假設年齡變數為age,14天內出城為變數traveled
age>=10 and not traveled
4、多條件
很多情況下,判斷只有兩個結果的情況並不能方便表達多個層次的情況,比如在疫情報警程式中,人可能有3種狀態:綠色(沒出過城)、黃色(出過城)、紅色(去過湖北)。多條件的語句必須加上elif:
if 判斷表達式1:
條件1成立
elif 判斷表達2:
條件2成立
elif 判斷表達3:
條件3成立
…..
elif 判斷表達N:
條件N成立
else:
所有條件不成立
假設出城目的地變數為from,14天內是否出城為變數traveled,出過城為黃色,去過湖北為紅色,沒有出城為綠色:
if not traveled: print('綠色') elif from=='湖北': print('紅色') else: print('橙色')
5、小示例
假設我們要做一個翻譯程式,把中文的「一、二…九」翻譯成數字,可以使用多條件語句這樣:
number = input("輸入中文一至九:") output = '' if number == "一": output = '1' elif number == "二": output='2' elif number == "三": output='3' elif number == "四": output='4' elif number == "五": output='5' elif number == "六": output='6' elif number == "七": output='7' elif number == "八": output='8' elif number == "九": output='9' else: output='輸入錯誤' print(output)
下面是程式運行的示例影片: