Python if else elif 條件判斷用法與範例:猜數字小程式

Python在程式流程控制方面提供完整的條件判斷語句,包括單一if、雙重if、if else、if elif else等,本文以猜數字為例,介紹語法架構及冒號縮排等應注意的規則。

一、Python if條件判斷

首先設定變數「真實數字」為固定常數值「86001」,再設定變數「猜測數字」為「int(input(“你這次猜的是”))」,將使用者所輸入的文字轉換成數值類型的整數,然後設計if條件判斷,它的敍述語法第一行為「if+條件運算式+:」,接著下是條件成立時要執行的程式。製作桌牌,這個跟Excel vba就是跟Excel vba不一樣的地方,這個跟Excel vba,說不說還無所謂,是比較不同的,必須特別注意

需要特別注意的是Python的if語法第一行必須縮排,不像Excel VBA雖然有提供快速縮排工具,但其實不管你有沒有縮排。另外Python縮排可以用Tab鍵或者空白鍵,Tab鍵好處是對齊方便,空白鍵贊贊小屋有實際測試過,一個兩個幾個空格都可以,而且也毋須統一,上面空兩格下面空三格照樣順利執行。

Python if else elif 條件判斷用法與範例:猜數字小程式 1

二、單條件程式執行

按F5執行程式,在「IDLE Shell」執行頁面輸入「90000」,果然出現「太大了」的預期結果。

Python if else elif 條件判斷用法與範例:猜數字小程式 3

三、雙重if巢狀程式

和Excel函數巢狀公式一樣,Pyhton的if敘述語句也可以大腸包小腸,例如這裡看到如果是輸入的猜測數字小於真實數字,表示太小了,而且在這個條件成立的前提下,再判斷猜測數字小於110年基本工資25250的話,多加顯示一條「小於基本工資?」,表示有點離譜。

Python if else elif 條件判斷用法與範例:猜數字小程式 5

四、雙重if程式執行

再次執行程式,這次輸入「20000」,執行結果不但會顯示一條「太小了」,還會追加一條「小於基本工資?」

Python if else elif 條件判斷用法與範例:猜數字小程式 7

五、if else敘述語句

步驟三是條件A如果成立的話,再繼續判斷條件B,可是在實務上有很多情况是條件A如果成立,我要這樣? 如果不成立,我要那樣,也就是邏輯基本命題裡的若P則Q否則R。

Python當然也可以設計像這樣的條件判斷,只要在原來語法架構下面再加一個「else :」,然後下一行是要執行的程式,注意到第二個下一行同樣要縮排。不過在先前介紹if基本語法的基礎,讀者在這裡不致於太大問題。程式語法就是一種語言,遵照語法結構去書寫設計就是了,想要程式執行什麼才是重點,就跟文法本身不一定有道理可言,例如為何英文跟日文的動詞變化差那麼多,與其探究這個,不如思考要到底表達什麼樣的思想內容。

Python if else elif 條件判斷用法與範例:猜數字小程式 9

六、若P則Q否則R

實際測試,故意輸入「86001」,因為它沒有大於86001,所以會顯示「太小了」,從這裡可見上個步驟所設計程式有瑕疵,因為單純用大於或不大於的判斷,如同非黑即白很容易少了正確答案的情況。

Python if else elif 條件判斷用法與範例:猜數字小程式 11

七、if elif else敘述語句

沿續上個步驟所發現問題,在此使用算是很完整的if elif else敘述語句,其中的「elif」相當於Excel VBA的「ElseIf」,整個判斷語句的意思是條件A成立的話是「太大了」,如果不成立再判斷條件B,條件B成立的話是「太小了」,否則(條件A跟條件B都不成立)的話,就是「正確答案!」。

Python if else elif 條件判斷用法與範例:猜數字小程式 13

八、完整程式執行

最終設計好的程式分三次執行,可以看到輸入「90000」、「50000」、「86001」,結果完合符合設計程式者的期待。

Python if else elif 條件判斷用法與範例:猜數字小程式 15

程式設計與執行測試

從這篇文章的過程而言,Python提供了相當完整的if條件判斷語句,這些語句在實際使用時都是有可能會用到的,所以學習程式盡可能瞭解有哪些語法工具可供使用,而且在設計時必須不斷的設計、執行、測試、修改。

最後補充一下,本文第一步驟和第三步驟相比,第三步驟多了程式碼行數,讀者有興趣可以參考贊贊小屋先前文章:《Python IDLE編輯器:自訂字體大小,程式註解及縮排》。

系列文章:贊贊小屋Python文章合輯

Python if else elif 條件判斷用法與範例:猜數字小程式 17
歡迎加入Line社群,口袋裡的VBA小教室!