python入門第九課:函式的定義及多種引數傳遞方式

本教程使用的課本是《Python程式設計:從入門到實踐》,作者:[美] Eric Matthes

本節介紹Python中的函式,函式是可以反覆使用的一段程式碼,有了函式能大大簡化程式設計工作量,還能使程式碼更加簡潔,所以我們需要將能用函式表示的程式碼都寫成函式。

python入門第九課:函式的定義及多種引數傳遞方式

比如需要輸出我最喜歡的書是什麼?我可以定義一個輸出函式favorite_book(),每次呼叫這個函式時會打印出“我最喜歡的書是:某某書”,請看程式碼:

def

favorite_book(book):

“”“輸出我最喜歡的書”“”

print(

'我最喜歡的書是:'

+book)

favorite_book(

'巴黎聖母院'

favorite_book(

'飄'

python入門第九課:函式的定義及多種引數傳遞方式

對上面程式碼的說明:

1、用def關鍵字定義一個函式。

2、函式名後面需要有個括號,括號後面必須有個冒號“:”,比如favorite_book(book):。

3、緊跟在函式名下面的的所有縮排行構成了函式體。

4、程式碼第二行中的三個引號被稱為文件字串的註釋,用來描述函式的作用。

5、函式名後括號中的book是函式的引數,可以用來傳遞資料,本例就是用來傳遞各種書籍名,這個引數可以是零個或者多個。

6、print(‘我最喜歡的書是:’+book)是這個函式的唯一一行程式碼,當然程式碼可以有很多行,只需要在縮排體內就行。

7、要呼叫函式,只需要寫函式名和括號中必須的資訊即可,本例是這麼呼叫的:favorite_book(‘巴黎聖母院’)

二、函式的引數使用說明

1、位置實參

位置實參的意思是函式呼叫時引數的順序要和函式定義時寫的引數位置一樣,否則執行結果會偏離預期。

下面來看多個函式引數的情況,對上面書籍的程式碼稍加改造,增加一個書籍類別的引數:

def

favorite_book(btype,book):

“”“輸出我最喜歡的書”“”

print(

'我有一本'

+btype+

'類的書'

print(

'這本'

+btype+

'書名叫:'

+book)

favorite_book(

'哲學'

'易經'

favorite_book(

'長篇小說'

'飄'

python入門第九課:函式的定義及多種引數傳遞方式

上面的兩個引數在呼叫函式的時候順序要對應,如果沒對應就會出現錯誤

。請看下面程式碼,將“易經”寫在前面,“哲學”寫在後面的輸出結果:

python入門第九課:函式的定義及多種引數傳遞方式

2、

關鍵字實參

關鍵字實參是傳遞給函式時使用“名稱=值”這種方式,這樣函式在呼叫的時候就不會混淆。比如還是上面的程式碼,我們在傳遞書籍類別和書名的時候直接指定了引數名,雖然書名在前面,類別在後面,但是執行結果是正確的,因此使用關鍵字實參不考慮引數的順序。

def

favorite_book(btype,book):

“”“輸出我最喜歡的書”“”

print(

'我有一本'

+btype+

'類的書'

print(

'這本'

+btype+

'書名叫:'

+book)

favorite_book(book=

'易經'

,btype=

'哲學'

python入門第九課:函式的定義及多種引數傳遞方式

3、引數的預設值

函式引數是可以有預設值的,比如在上面中增加一個“頁數”的值,預設是900頁,看看執行結果:

def

favorite_book(btype,book,page=

'900'

):

“”“輸出我最喜歡的書”“”

print(

'我有一本'

+btype+

'類的書'

print(

'這本'

+btype+

'書名叫:'

+book)

print(

'這邊書一共有'

+page+

'頁'

favorite_book(

'哲學'

'易經'

print()

favorite_book(

'小說'

'飄'

'1200'

python入門第九課:函式的定義及多種引數傳遞方式

我們注意到在呼叫函式時,page這個引數可以填,也可以不填。如果不填,它的預設值就是900,如果填寫了,就按填寫的值展示。

python入門第九課:函式的定義及多種引數傳遞方式

Python程式設計 從入門到實踐 第2版

檢視

4、等效呼叫

上面講了這麼多,大家可能發現函式其實是有多種呼叫方式的,下面五種呼叫方式,執行的結果都是一樣的,請看程式碼:

favorite_book(

'哲學'

'易經'

favorite_book(

'哲學'

'易經'

'900'

favorite_book(book=

'易經'

,btype=

'哲學'

favorite_book(btype=

'哲學'

,book=

'易經'

favorite_book(btype=

'哲學'

,book=

'易經'

,page=

'900'

python入門第九課:函式的定義及多種引數傳遞方式

本節介紹了函式的定義及函式的引數傳遞方式,下一節將繼續學習函式的相關知識,感謝您的耐心觀看!

長按文末點贊送三連,支援本文作者多寫點~