一、函數(shù)的聲明
??函數(shù): 就是對實現(xiàn)某一些功能的代碼塊的封裝
?&emsp作用: 封裝(將功能綁定在一個函數(shù)中,想要使用這個功能的時候,直接調(diào)用函數(shù))
1. 怎么聲明函數(shù):
格式:
????def 函數(shù)名(參數(shù)列表):
??????函數(shù)體def:是Python中聲明函數(shù)的關(guān)鍵字
函數(shù)名: 標(biāo)識符。PEP8. 見名知意(看到函數(shù)名要知道函數(shù)的作用)
函數(shù)說明: 對函數(shù)的功能和參數(shù)以及返回值進(jìn)行說明
(): 固定格式
參數(shù)列表: (形參列表)(參數(shù)名1, 參數(shù)名2, 參數(shù)名3, ...)
參數(shù)的功能: 用來接收外部傳到函數(shù)內(nèi)部的數(shù)據(jù)
函數(shù)體: 實現(xiàn)函數(shù)功能的代碼塊,可能包含一個return語句
2. 初學(xué)者聲明函數(shù)的步驟:
a. 確定函數(shù)的功能
b. 確定函數(shù)名
c. 確定參數(shù):
??①需不需要參數(shù);
??②需要幾個參數(shù)(看函數(shù)功能需不需要從外部傳輸數(shù)據(jù)到函數(shù)內(nèi)部)
d. 實現(xiàn)函數(shù)的功能
e. 確定返回值
3. 函數(shù)的調(diào)用
??函數(shù)名(實參列表)
- 函數(shù)名: 調(diào)用的函數(shù)一定是已經(jīng)聲明過的,想要使用什么功能就調(diào)用對應(yīng)函數(shù)
- 實參列表: 實參是用來給形參賦值的
函數(shù)調(diào)用過程:
- 回到函數(shù)聲明的地方
- 使用實參給形參賦值
- 執(zhí)行函數(shù)體
- 函數(shù)體執(zhí)行完成后, 回到函數(shù)調(diào)用的位置
注意:
??1. 函數(shù)只有被調(diào)用的時候才會被執(zhí)行
??2. 函數(shù)調(diào)用的時候一定要保證每個參數(shù)都有值
# 寫一個函數(shù),計算兩個數(shù)的和
def sum_add(*s):
sum1 = 0
for item in s:
sum1 += item
return sum1
def print10():
for _ in range(10):
print('*', end=' ')
print10()
print(sum_add(1, 2, 3, 4, 5))
* ? * ? * ?*? *? * ? *? *? * ? *
15
二、參數(shù)
?參數(shù)的作用:從函數(shù)外面給函數(shù)傳值
1. 位置參數(shù)
傳遞參數(shù)時, 實參按順序給形參賦值
2. 關(guān)鍵字參數(shù)
- 調(diào)用函數(shù)時格式:
??函數(shù)名(a=10,b=20,c=30) - 位置參數(shù)和關(guān)鍵字參數(shù)可以混合
3. 函數(shù)參數(shù)的默認(rèn)值
??在python中函數(shù)聲明的時候參數(shù)可以設(shè)置默認(rèn)值,有默認(rèn)值的參數(shù)必須放在參數(shù)列表的最后
調(diào)用參數(shù)有默認(rèn)值的函數(shù)時, 有默認(rèn)值的參數(shù)可以不傳值
例如:
??def fun2(a, b, c=10):
???? print(a, b, c)
4. 參數(shù)個數(shù)不定
??函數(shù)的個數(shù)不確定的時候,就在聲明函數(shù)的時候,形參的前面加一個*,將形參變成元組
- 參數(shù)個數(shù)不定時也可以不傳參,對應(yīng)參數(shù)就會變成一個空的元組
- 調(diào)用函數(shù)的時候,這個參數(shù)會將對應(yīng)的實參作為元組的元素保存起來
"""
# 寫一個函數(shù),求多個數(shù)的和
def sum_add(*s):
sum1 = 0
print(s)
for item in s:
sum1 += item
return sum1
# 注意: 參數(shù)個數(shù)不定時,可以是一形參中的一部分是不定的
# 個數(shù)不定的參數(shù)要放到參數(shù)的最后
def fun3(char, *s):
print(char,s)
fun3(1, 2, 3, 4, 5, 6, 7, 8, 9)
print(sum_add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
1 (2, 3, 4, 5, 6, 7, 8, 9)
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
55