1. 程式人生 > >函式和常用模組【day04】:函式介紹(一)

函式和常用模組【day04】:函式介紹(一)

本節內容

1、函式介紹

2、函式定義

3、為什麼要使用函式

一、介紹  

在我們以往的學習程式設計的過程當中,碰到的最多的兩張程式設計方式或者說程式設計方法:面向過程和麵向物件。其實不管是哪一種,其實都是程式設計的方法論而已。但是現在有一種更古老的程式設計方式:函數語言程式設計,以它的不儲存的狀態,不修改變數等特性,重新進入我們的視野。

面向物件 --->類 ---->class
面向過程 --->過程--->def
函數語言程式設計-->函式--->def

二、函式定義  

我們上初中那會也學過函式,即:y=2x,說白了,這裡面總共就兩個變數x和y,x是自變數,y是因變數(因為x變而變),y是x的函式。自變數的取值範圍,叫做這個函式的定義域。

  說了這麼多,我們還是來講講,程式設計中的函式定義吧!!!

1、函式定義:

def test():
    "the funcation details"
    print("in the test funcation")
    return 0
 
def #定義函式的關鍵字
test #函式名
() #定義形參,我這邊沒有定義。如果定義的話,可以寫成:def test(x): 其中x就是形式引數
"the funcation details" # 文件描述(非必要,但是強烈建議你為你的函式新增詳細資訊,方便別人閱讀)
print #泛指程式碼塊或者程式邏輯處理
return #定義返回值

2、過程定義:

#定義過程
def test_2():
    "the funcation details"
    print("in the test funcation")

3、兩者比較:

#定義函式
def test_1():
    "the funcation details"
    print("in the test funcation")
    return 0
 
#定義過程
def test_2():
    "the funcation details"
    print("in the test funcation")
 
a = test_1()
b = test_2()
print(a)
print(b)
 
#輸出
in the test funcation
in the test funcation
#輸出返回值
0
#沒有return ,返回為空
None

小結:不難看出,函式和過程其實在python中沒有過多的界限,當有return時,則輸出返回值,當沒有return,則返回None

三、使用函式原因

 至此、我們已經瞭解了函式,但是我們為啥要用函式啊,我覺的我們以前的那種寫法挺好的呀!其實不然,我給使用函式總結 了兩點好處:

程式碼重複利用
可擴充套件性
保持一致性

1、程式碼重複利用

  我們平時寫程式碼的時候,最討厭的就是寫重複程式碼,這個無疑是增加我們的工作量,所以程式碼重用性是非常有必要的。下面我們就舉個簡單的例子吧,使用函式和不使用函式的區別。

①優化前

while True:
    if cpu利用率 > 90%:
        #傳送郵件提醒
        連線郵箱伺服器
        傳送郵件
        關閉連線
    
    if 硬碟使用空間 > 90%:
        #傳送郵件提醒
        連線郵箱伺服器
        傳送郵件
        關閉連線
    
    if 記憶體佔用 > 80%:
        #傳送郵件提醒
        連線郵箱伺服器
        傳送郵件
        關閉連線

那麼假設有n個函式,我們是不是也要拷貝n次吶?於是,我們就誕生了下面的方法

②優化後

def 傳送郵件(內容)
    #傳送郵件提醒
    連線郵箱伺服器
    傳送郵件
    關閉連線
    
while True:
    
    if cpu利用率 > 90%:
        傳送郵件('CPU報警')
    
    if 硬碟使用空間 > 90%:
        傳送郵件('硬碟報警')
    
    if 記憶體佔用 > 80%:

2、可擴充套件,程式碼保持一致性

def 傳送郵件(內容)
    #傳送郵件提醒
    連線郵箱伺服器
    傳送郵件
    關閉連線
    
while True:
    
    if cpu利用率 > 90%:
        傳送郵件('CPU報警')
    
    if 硬碟使用空間 > 90%:
        傳送郵件('硬碟報警')
    
    if 記憶體佔用 > 80%:

注:如果遇到程式碼邏輯變了,用以前拷貝n次的方法,那什麼時候拷貝完啊,而且中間有遺漏怎麼辦,如果用了函式,我們只需要改這個函式的邏輯即可,不用改其他任何地方。