1.函數(shù)簡介
- 函數(shù)也可以是一個對象
- 函數(shù)用來保存一些可執(zhí)行的代碼,并且可以在需要時,對這些語句進行多次調(diào)用。
語法
def 函數(shù)名([形參1,形參2,形參3......]):
代碼塊
注意:
函數(shù)名必須符合標識符的規(guī)范(可以包含字母、數(shù)字、下劃線但是不能以數(shù)字開頭)
print是函數(shù)對象
print()是調(diào)用函數(shù)
2.函數(shù)的參數(shù)
2.1形參和實參
- 形參(形式參數(shù))定義形參就相當于在函數(shù)內(nèi)部聲明了變量,但并不是賦值
- 實參(實際參數(shù))指定了形參,那么在調(diào)用函數(shù)時必須傳遞實參,實參將會賦值給對應的形參,簡單來說有幾個形參就要有幾個實參。
2.2函數(shù)的傳遞方式 - 定義形參時,可以為形參指定默認值。指定了默認值以后,如果用戶傳遞了參數(shù)則默認值不會生效。如果用戶沒有傳遞,則默認值就會生效
- 位置參數(shù):位置參數(shù)就是將對應位置的實參賦值給對應位置的形參
- 關(guān)鍵字參數(shù) : 關(guān)鍵字參數(shù)可以不按照形參定義的順序去傳遞,而根據(jù)參數(shù)名進行傳遞
- 混合使用位置參數(shù)和關(guān)鍵字參數(shù)的時候,必須將位置參數(shù)寫到關(guān)鍵字參數(shù)前面去
3.不定長參數(shù)
- 定義函數(shù)時,可以在形參前?加?個*,這樣這個形參可以獲取到所有的實參,它會將所有的實參保存到?個元組中
- 帶*號的形參只能有?個,可以和其他參數(shù)配合使用
- *形參只能接受位置參數(shù),不能接受關(guān)鍵字參數(shù)
- **形參可以接收其他的關(guān)鍵字參數(shù),它會將這些參數(shù)統(tǒng)?保存到字典當中,字典的key就是參數(shù)的名字,字典的value就是參數(shù)的值
- **形參只有?個,并且必須寫在所有參數(shù)的后面
4.參數(shù)的解包
- 傳遞實參時,也可以在序列類型的參數(shù)前添加星號,這樣它會自動的將序列中元素依次作為參數(shù)傳遞
- 要求序列中的元素的個數(shù)必須和形參的個數(shù)?致