天天看點

Python函數定義和調用

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

繼續閱讀