【Python】學習筆記之函數|第6篇

書籍:《Python編程:從入門到實踐》
打卡人:Owenli
打卡日期:2018.4.14

Python從入門到實踐目錄

前言

本篇學習編寫函數。函數是帶名字的代碼塊,用于完成具體的工作。

函數讓程序的編寫、閱讀、測試和修復變的容易,極大提高了代碼的復用性。

本篇中,你還會學習向函數傳遞信息的方式。你將學習如何編寫主要任務是顯示信息的函數,還有用于處理數據并返回一個或一組值的函數。最后,你將學習如何 將函數存儲在被稱為模塊 的獨立文件中,讓主程序文件的組織更為有序。

一、定義函數

簡單的函數,定義greet_user():

這是一個最簡單基本的函數。defPython定義函數的關鍵字,greet_user函數名,冒號后面的所有縮進行構成函數體。"""xxx"""是文檔字符串的注釋。要使用函數只需指定函數名和括號中的必要信息即可。

我們可以給上面的函數添加一個參數username

通過修改上面greet_user添加一個參數,在調用函數時,將參數放在括號中傳入。
函數的參數username是形參。在調用函數是傳遞的內容是實參。

二、傳遞實參

函數定義可能包含多個形參,因此函數調用中也可能包含多個實參。向函數傳遞實參的方式很多,例如:位置實參,實參和形參的順序相同。關鍵字實參,其中實參都由變量名和值組成。還有字典和列表等。

2.1 位置實參

位置實參:每個實參根據順序關聯一個形參。

舉個例子:


describe_pet('hanster', 'harry')兩個實參分別對應def describe_pet(animal_type, animal_name):中的形參。
describe_pet()可以多次使用。
注意實參的順序不能改變。

2.2 關鍵字實參

關鍵字實參 是傳遞給函數的名稱-值對。直接將實參和形參關聯起來。

上邊例子看出,順序對關鍵字實參沒影響。

2.3 默認值

編寫函數時,可以給形參指定默認值。當調用函數提供實參時,使用指定的實參。否則,使用默認值。

你可能會遇到黃色框中問題。為animal_type指定了默認值。調用函數傳遞的實參被視為位置實參,默認的會指定給第一個形參,所以會報錯。

三、返回值

函數并非總是直接輸出值,它可以處理一些數據,并返回一個或一組值。return語句將值返回到調用函數的代碼行。

例子:


函數中將full_name返回給調用者。調用函數時需要提供一個變量,來存儲返回的值。

函數可以返回任何類型的值,包括字典和列表等較復雜的數據結構。

四、傳遞列表

有時向函數傳遞列表很有用,通過將列表傳遞給函數,函數可以直接訪問內容。

usernames作為參數傳遞給函數。

可以在函數中修改列表的值

在函數print_models修改completed_models列表的值。列表的內容被永久性修改。
如何禁止函數修改列表,其實很簡單,只需要傳遞列表的副本給函數即可。 還記得list_name[:]生成副本。

傳遞任意數量的實參

有時不知道需要接受多少個實參,Python允許從調用語句中收集任意數量的實參。

Python使用*toppings創建一個空元組,并將接收到的所有值都封裝到這個元組中。

小結

本篇學習了函數的基本用法,如何定義一個函數、實參和形參、返回值、參數列表等。

打卡第六次

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容