天天看點

Python函數(函數定義、函數調用)用法詳解

python 中函數的應用非常廣泛,前面章節中我們已經接觸過多個函數,比如 input() 、print()、range()、len() 函數等等,這些都是 python 的内置函數,可以直接使用。

除了可以直接使用的内置函數外,python 還支援自定義函數,即将一段有規律的、可重複使用的代碼定義成函數,進而達到一次編寫、多次調用的目的。

舉個例子,前面學習了 len() 函數,通過它我們可以直接獲得一個字元串的長度。我們不妨設想一下,如果沒有 len() 函數,要想擷取一個字元串的長度,該如何實作呢?請看下面的代碼:https://www.furuihua.cn/article/489.html

n=0

for c in "http://c.biancheng.net/python/":

n = n + 1

print(n)

程式執行結果為:

30

要知道,擷取一個字元串長度是常用的功能,一個程式中就可能用到很多次,如果每次都寫這樣一段重複的代碼,不但費時費力、容易出錯,而且交給别人時也很麻煩。

是以 python 提供了一個功能,即允許我們将常用的代碼以固定的格式封裝(包裝)成一個獨立的子產品,隻要知道這個子產品的名字就可以重複使用它,這個子產品就叫做函數(function)。

比如,在程式中定義了一段代碼,這段代碼用于實作一個特定的功能。問題來了,如果下次需要實作同樣的功能,難道要把前面定義的代碼複制一次?如果這樣做實在太傻了,這意味着每次當程式需要實作該功能時,都要将前面定義的代碼複制一次。正确的做法是,将實作特定功能的代碼定義成一個函數,每次當程式需要實作該功能時,隻要執行(調用)該函數即可。

其實,函數的本質就是一段有特定功能、可以重複使用的代碼,這段代碼已經被提前編寫好了,并且為其起一個“好聽”的名字。在後續編寫程式過程中,如果需要同樣的功能,直接通過起好的名字就可以調用這段代碼。

下面示範了如何将我們自己實作的 len() 函數封裝成一個函數:

#自定義 len() 函數

def my_len(str):

length = 0

for c in str:

length = length + 1

return length

#調用自定義的 my_len() 函數

length = my_len("http://c.biancheng.net/python/")

print(length)

#再次調用 my_len() 函數

length = my_len("http://c.biancheng.net/shell/")

29