Python中函數的應用非常廣泛,比如 input() 、print()、range()、len() 函數等等,這些都是 Python 的内置函數,可以直接使用。
除了可以直接使用的内置函數外,Python還支援自定義函數,即将一段有規律的、可重複使用的代碼定義成函數,進而達到一次編寫、多次調用的目的。如len() 函數,通過它我們可以直接獲得一個字元串的長度,如果沒有 len() 函數,要想擷取一個字元串的長度,可用如下代碼:
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/")
print(length)
程式執行結果為:
30
29
函數的使用大緻分為 2 步,分别是定義函數和調用函數。
Python函數的定義
定義函數,也就是建立一個函數,可以了解為建立一個具有某些用途的工具。定義函數需要用 def 關鍵字實作,具體的文法格式如下:
def 函數名(參數清單):
//實作特定功能的多行代碼
[return [傳回值]]
其中,用 [] 括起來的為可選擇部分,即可以使用,也可以省略。
形參清單:設定該函數可以接收多少個參數,多個參數之間用逗号( , )分隔。
[return [傳回值] ]:整體作為函數的可選參參數,用于設定該函數的傳回值。也就是說,一個函數,可以用傳回值,也可以沒有傳回值,是否需要根據實際情況而定。
另外,在建立函數時,即使函數不需要參數,也必須保留一對空的“()”,否則 Python 解釋器将提示“invaild syntax”錯誤。如果想定義一個沒有任何功能的空函數,可以使用 pass 語句作為占位符。
例如,下面定義了 2 個函數:
#定義個空函數,沒有實際意義
def pass_dis():
pass
#定義一個比較字元串大小的函數
def str_max(str1,str2):
str = str1 if str1 > str2 else str2
return str
雖然 Python 語言允許定義個空函數,但空函數本身并沒有實際意義。
函數中的 return 語句可以直接傳回一個表達式的值,例如修改上面的 str_max() 函數:
def str_max(str1,str2):
return str1 if str1 > str2 else str2
該函數的功能,和上面的 str_max() 函數是完全一樣的,隻是省略了建立 str 變量,是以函數代碼更加簡潔。
Python函數的調用
調用函數也就是執行函數。如果把建立的函數了解為一個具有某種用途的工具,那麼調用函數就相當于使用該工具。
函數調用的基本文法格式如下所示:
[傳回值] = 函數名([形參值])
建立函數有多少個形參,那麼調用時就需要傳入多少個值,且順序必須和建立函數時一緻。即便該函數沒有參數,函數名後的小括号也不能省略。
例如,我們可以調用上面建立的 pass_dis() 和 str_max() 函數:
pass_dis()
strmax = str_max("http://c.biancheng.net/python","http://c.biancheng.net/shell");
print(strmax)
程式執行結果為:
http://c.biancheng.net/shell
作者:QinL