DevOps-Programming Basics with Python 6

Conditionals (if / else) and Boolean Data Type

ZONGRU Li
May 23, 2023

考量到前面完成的程式,如果輸入的值給負值

但這可能不一定合理

像是改輸入文字:

直接掛掉

所以這邊要加入判斷式來防止傳入的參數有問題

實際上符合該條件的判斷時,要執行的程式碼要再縮排4個空格變成:

這時候輸入正值依然有正常執行:

但是如果給負值就會出現"None",因為判斷式內沒有寫以外條件該執行的程式

補上以外條件判斷式(一樣要縮排4格空格):

另外以上只有使用到">"大於這個判斷式,其他尚有

另外運算符號還有:

以上程式執行並輸入負值得到:

以上整個邏輯流程課程有講解但是這邊不再贅述

另外這邊也可以事先把條件判斷的boolean結果印出:

執行看到:

也可以設成變數:

另外Python有個能印出變數型別的功能 →type(),但是要用print印出才看得到

執行後看到:

這邊使用到了兩層(Nested)的Function執行:

同理這段文字轉換int的程式碼:

也可以這樣簡化改寫為:

就看怎樣的寫法看起來會比較整潔即可

接著先暫時移除底下的傳入值,先簡單驗證一下type()功能

以上簡單的試用type()功能,之後還會再用到

恢復當前程式碼如下:

此時順便驗證輸入值0的狀況:

印出的訊息卻為輸入了負值

所以這時候要再擴充條件式,增加多一個0的判斷與其回應:

執行後輸入0得到:

elif可以很多個!!!

More User Input Validation

若使用者輸入的不是數字的字串,而是真的一個文字字串:

甚至輸入的是浮點數:

一樣失敗

所以我們要補上使用者輸入值的檢核判斷式

執行輸入文字字串得到:

執行輸入正常數字得到:

這時候若是輸入浮點數:

所以isdigit()也不接受浮點數字串

負數字串:

isdigit()也不接受負數字串

所以這時候原本這段

變成

執行後輸入負數字串得到:

Clean Up Our Code

前面針對輸入值做的檢核,為了整潔與使用方便,可以改寫到一個Function

然後依然可以執行

Nested If..Else

當前兩組Function內的判斷式如下:

我們也有可能改寫,將所以判斷式集中在下面的Function內變成:

不過如上寫法可能更容易混淆,只是仍然需要能夠理解這樣的程式碼

因為程式撰寫常常還是要面對他人的程式碼

參考課程reference

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet