如果沒有函數(shù),代碼就會從上往下執(zhí)行全部執(zhí)行。 函數(shù)沒有調(diào)用的時候,它不會自己執(zhí)行的。
你可以定義一個由自己想要功能的函數(shù),以下是簡單的規(guī)則:
Python 定義函數(shù)使用 def 關鍵字,一般格式如下:
定義一個函數(shù),給了函數(shù)一個名稱,指定了函數(shù)里包含的參數(shù),和代碼塊結構。 函數(shù)調(diào)用格式:函數(shù)名
在 python 中,類型屬于對象,變量是沒有類型的。 參數(shù)可以看作鑰匙,函數(shù)是門,多個參數(shù)就是多把 鑰匙,開門需要鑰匙。定義函數(shù)的時候,我們把參數(shù)的名字和位置確定下來。 對于函數(shù)的調(diào)用者來說,只需要知道如何傳遞正確的參數(shù),以及函數(shù)將返回什么樣的值就夠了。 函數(shù)內(nèi)部的復雜邏輯被封裝起來,調(diào)用者無需了解。 Python的函數(shù)定義非常簡單,但靈活度卻非常大。
必需參數(shù)必須傳入函數(shù)。調(diào)用時的數(shù)量必須和聲明時的一樣。 如果不傳參數(shù),會報錯。門需要鑰匙開門,沒帶鑰匙怎么可以打開。
調(diào)用函數(shù)時,如果沒有傳遞參數(shù),則會使用默認參數(shù)。 輸出結果:參數(shù)num,str='求平方的值',調(diào)用函數(shù)只傳一個參數(shù)5,其實程序自己把默認值str='求平方的值'也傳入了,我們看不到而已。 調(diào)用函數(shù)時,修改默認值。 輸出結果:
定義出這個函數(shù),我們必須確定輸入的參數(shù)。由于參數(shù)個數(shù)不確定,你可能需要一個函數(shù)能處理比當初聲明時更多的參數(shù)。這些參數(shù)叫做不定長參數(shù),和上述 2 種參數(shù)不同,聲明時不會命名。
如果在函數(shù)調(diào)用時沒有指定參數(shù),它就是一個空元組。我們也可以不向函數(shù)傳遞未命名的變量。 輸出結果: 傳入多個參數(shù)輸出結果: ![]() 函數(shù)一個必須參數(shù)和一個可變的元組參數(shù)。傳入3個參數(shù)減去一個必須參數(shù),剩下的2個參數(shù)都放到可變的元組參數(shù)中,所以不定長參數(shù)有兩個元素。 ![]()
如果在函數(shù)調(diào)用時沒有指定參數(shù),它就是一個空字典。我們也可以不向函數(shù)傳遞未命名的變量。 ![]() 輸出結果: ![]() 傳入?yún)?shù)輸出結果: ![]() 兩個星號**的參數(shù)會把賦值形式的參數(shù)變?yōu)樽值湫问健?/p> ![]()
![]() 輸出結果: ![]() change('名字',12,'元組',sex='男',ad='地址'),一個必須參數(shù)name對應名字,默認參數(shù)值1被傳遞的第二個參數(shù)12替換。第三個參數(shù)歸類到一個星號的元組參數(shù),如果沒有碰到sex='男'這樣的參數(shù),后面的參數(shù)都會歸類到一個星號的元組參數(shù)。 直到碰到類似sex='男'這樣的賦值語句,它才會歸類到兩個星號的字典參數(shù)。例子: ![]() 輸出結果:看到這里又有疑問{'a':1,'b':'c'}不是字典,怎么會歸類到元組。 ![]()
![]() 輸出結果:把{'a':1,'b':'c'}賦值給dict。 ![]()
return語句用于退出函數(shù),選擇性地向調(diào)用方返回一個表達式。沒有return語句默認返回None。
![]() 輸出結果: ![]()
所謂匿名,意即不再使用 def 語句這樣標準的形式定義一個函數(shù)。
![]() |
|
|