DevOps-Programming Basics with Python 4
Variables
考量到以下秒數計算
也就是不同的天數要重複性地做運算才能得到秒數
最方便的是把後面的運算取為變數(Variables)如下
這邊有兩點需要注意:
1.Python is dynamically typed(也就是變數前面不用加型別)
2.Naming Convention(通常是小寫,並用下底線分開單字)
當然也是能用駝峰式的運行,但習慣上Python都是全小寫下底線
另外要注意的就是Python3的Reserved Keywords(LINK):
接著就可以替換下方的print內重複的計算
其他print全換成變數也可以執行:
但是變數如果改名則都要更著替換
這時候計算可能考慮不一定都是秒,可以也替換為變數,之後方便更改
宣告單位的文字變數:
所以改成如下形式:
之後要更改成小時計算則透過改變變數達成:
得到以下結果:
clean code概念下,變數的名稱最好是有描述性(descriptive)的名稱
其他人才能更容易理解程式內容
Functions
如上即便我們改成變數了,要印出四行的結果,卻仍要寫成四行相似的Code
要讓Code更加整潔,又不用重複性地寫,則需要Function
透過Function來做上述的print,其使用方法如下:
然後可以多行:
這時候我們可以移除底下那四行print,這時候可以注意到IDE有黃底線提示:
上述提示說到要有兩個空白行像這樣:
Python官網也有介紹應該寫成什麼風格的寫法會比較好(LINK):
這時候執行則沒有印出任何Function內的內容:
因為就像變數一樣,我們還沒使用Function
使用Function的方式如下
Function Parameters:
為了更加動態地變更Function的計算內容,則需要參數餵入,如下
為了回到之前四個print的結果,可以重複地呼叫該Function:
並有以下好處:
- 減少程式碼
- 減少重複的程式碼
- 更有描述性
這時候若是執行沒有必要的參數的話,則會:
這時候可能會想要多個參數餵入Function,其寫法如下:
Function Scope:
變數僅可以在被建立的範圍內被使用
Global Scope:變數可在任何範圍內使用,例如以下兩個變數
上述這兩個變數甚至可以在別的檔案內使用
Local Scope:Function內建立的變數,僅在該Function內使用
例如建立另一個Function嘗試調用隔壁Function的Local Scope變數則會:
若執行了會有錯誤出現:
這時候我們也可以特別為check_scope這個Function
自訂自己的num_of_days變數
該變數跟days_to_units這個Function內同名變數就沒有任何關係
而這一部分即是check_scope的Function Body
也可以在Function內定義變數:
現在先簡化目前程式為如下,後面將學到其他範例: