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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章