函數來了

引子

如今老闆讓你寫一個監控程序,24小時整年無休的監控大家公司網站服務器的系統情況,當cpu\memory\disk等指標的使用量超過閥值時即發郵件報警,你掏空了全部的知識量,寫出瞭如下代碼程序員

 1 while True:
 2     if cpu利用率 > 90%:
 3         #發送郵件提醒
 4         鏈接郵箱服務器
 5         發送郵件
 6         關閉鏈接
 7     if 硬盤使用空間 > 90%:
 8         #發送郵件提醒
 9         鏈接郵箱服務器
10         發送郵件
11         關閉鏈接
12     if 內存佔用 > 80%:
13         #發送郵件提醒
14         鏈接郵箱服務器
15         發送郵件
16         關閉鏈接

上面的代碼實現了功能,但即便是鄰居老王也看出了端倪,老王親切的摸了下你家兒子的臉蛋,說,你這個重複代碼太多了,每次報警都要重寫一段發郵件的代碼,太low了,這樣幹存在2個問題:服務器

  1. 代碼重複過多,一個勁的copy and paste不符合高端程序員的氣質函數

  2. 若是往後須要修改發郵件的這段代碼,好比加入羣發功能,那你就須要在全部用到這段代碼的地方都修改一遍網站

只須要把重複的代碼提取出來,放在一個公共的地方,起個名字,之後誰想用這段代碼,就經過這個名字調用就好了spa

 1 def 發送郵件(內容):  #內容其實就至關於自變量X,最後輸出的發送郵件(X)就是至關於數學當中的Y  2     #發送郵件提醒
 3     鏈接郵箱服務器
 4     發送郵件
 5     關閉鏈接
 6 
 7 
 8 while True:
 9     if cpu利用率 > 90%:
10         發送郵件('CPU報警')
11     if 硬盤使用空間 > 90%:
12         發送郵件('硬盤報警')
13     if 內存佔用 > 80%:
14         發送郵件('內存報警')

定義: 函數是指將一組語句的集合經過一個名字(函數名)封裝起來,要想執行這個函數,只需調用其函數名便可code

特性:blog

  1. 減小重複代碼內存

  2. 使程序變的可擴展數學

  3. 使程序變得易維護ast

 

1 def sayhi():  #定義函數名,函數命名不要用中文和拼音,很是Low
2     print("豬豬你好!")
3 
4 sayhi()  #調用函數
 1 a,b = 5,8
 2 c = a**b
 3 print(c)
 4 
 5 轉爲函數表示
 6 
 7 def calculate(x,y):
 8     res = x**y  #print(res)
 9     return res  #返回值,意味着函數的終止
10 
11 c = calculate(x,y)
12 print(c)
相關文章
相關標籤/搜索