DevOps-Programming Basics with Python 6
考量到前面完成的程式,如果輸入的值給負值
但這可能不一定合理
像是改輸入文字:
所以這邊要加入判斷式來防止傳入的參數有問題
實際上符合該條件的判斷時,要執行的程式碼要再縮排4個空格變成:
這時候輸入正值依然有正常執行:
但是如果給負值就會出現"None",因為判斷式內沒有寫以外條件該執行的程式
補上以外條件判斷式(一樣要縮排4格空格):
另外以上只有使用到">"大於這個判斷式,其他尚有
另外運算符號還有:
以上程式執行並輸入負值得到:
以上整個邏輯流程課程有講解但是這邊不再贅述
另外這邊也可以事先把條件判斷的boolean結果印出:
執行看到:
也可以設成變數:
另外Python有個能印出變數型別的功能 →type(),但是要用print印出才看得到
執行後看到:
這邊使用到了兩層(Nested)的Function執行:
同理這段文字轉換int的程式碼:
也可以這樣簡化改寫為:
就看怎樣的寫法看起來會比較整潔即可
接著先暫時移除底下的傳入值,先簡單驗證一下type()功能
以上簡單的試用type()功能,之後還會再用到
恢復當前程式碼如下:
此時順便驗證輸入值0的狀況:
印出的訊息卻為輸入了負值
所以這時候要再擴充條件式,增加多一個0的判斷與其回應:
執行後輸入0得到:
而elif可以很多個!!!
More User Input Validation
若使用者輸入的不是數字的字串,而是真的一個文字字串:
甚至輸入的是浮點數:
所以我們要補上使用者輸入值的檢核判斷式
執行輸入文字字串得到:
執行輸入正常數字得到:
這時候若是輸入浮點數:
所以isdigit()也不接受浮點數字串
負數字串:
所以這時候原本這段
變成
執行後輸入負數字串得到:
Clean Up Our Code
前面針對輸入值做的檢核,為了整潔與使用方便,可以改寫到一個Function內
然後依然可以執行
Nested If..Else
當前兩組Function內的判斷式如下:
我們也有可能改寫,將所以判斷式集中在下面的Function內變成:
不過如上寫法可能更容易混淆,只是仍然需要能夠理解這樣的程式碼
因為程式撰寫常常還是要面對他人的程式碼