- AI速成課:從AI編程到構建智能軟件
- (阿聯酋)赫德林·德·龐特維斯
- 803字
- 2020-08-21 17:45:12
3.4 if語句和條件
現在我想介紹一個編程中非常有用的工具——if條件語句。
if語句被廣泛用于檢驗一個語句的結果是否為真。如果檢驗結果為真,那么一些對應檢驗條件的指令便會被執行。我會用一些簡單的代碼向你展示這一點,比如如何辨別一個數字是正的、負的還是等于零。代碼不長,所以我就直接在下面全都展示出來:
在第一行代碼中,我們聲明了一個新的變量a并且將其賦值為5。這就是我們即將要進行值的檢驗的變量。在下一行代碼中,我們通過if條件語句檢驗了這一變量是否比0大。如果a比0大,那么后面縮進的代碼段落中的指令就會被執行,顯示“a is greater than 0”(a比0大)。
如果a不符合第一個條件,也就是a比0小或者等于0,程序就會進入以elif(else if的簡寫)為標志的下一個條件。這一語句會檢查a是否等于0。如果是,就會執行縮進行的指令,顯示“a is equal to 0”(a等于0)。
最后的條件是通過else引入的。else條件中包含的指令會在其他條件全部不符時執行。本例中,其他兩個條件不符意味著a<0,因此會顯示“a is lower than 0”(a比0小)。
很容易就能預測本例中代碼的返回值,即第一個指令print('a is greater than 0')的結果。事實上,一旦你運行這一代碼,就會得到:
簡而言之,if被用來引入檢驗語句,并且它是第一個被檢驗的條件,elif被用來檢驗其他必須檢驗的條件,而else在之前的檢驗全都失敗時才會被觸發。
還有一點非常重要,那就是一旦一個條件為真,其他條件便不會被檢驗。所以,本例中,一旦進入了第一個條件并且得到它為真,便不再檢驗其他語句。如果你想要檢驗其他條件,那么你需要將elif和else語句替換為一個新的if語句。新的if總是會檢查和它處于同一行的新條件;因此,if條件語句中的條件總是會得到檢驗。
練習
構建一個用于檢查數字是否能被3整除的條件語句。
提示:你可以使用一個叫作模(modulo)的數學表達式。進行模運算時,返回的是兩個數字除法運算中的余數部分。在Python中,模用%表示。比如:
5%3=2
71%5=1
本練習的答案可以在GitHub頁面的Chapter 03/If Statements/homework.py文件中找到。