一,函數(shù)基礎(chǔ)
1.函數(shù)的定義:
函數(shù)就是對實(shí)現(xiàn)某一特定功能的代碼塊的封裝
2.函數(shù)的作用:
將功能代碼塊封裝起來,想要使用這個(gè)功能的時(shí)候直接調(diào)用函數(shù)
3.聲明函數(shù):
結(jié)構(gòu):
def 函數(shù)名(參數(shù)列表):
????????'''函數(shù)說明'''
????????????????函數(shù)體
- def:是Python中聲明函數(shù)的關(guān)鍵字
- 函數(shù)名:標(biāo)識符;遵循PEP8命名法;見名知意。
- 函數(shù)體:實(shí)現(xiàn)函數(shù)功能的代碼塊,可能會(huì)包含一個(gè)return語句
- (參數(shù)列表):參數(shù)列表(形參列表):參數(shù)名1, 參數(shù)名2,參數(shù)名3 。參數(shù)的功能是用來接收函數(shù)外部傳遞到函數(shù)內(nèi)部的數(shù)據(jù),()不能漏寫。
4.聲明函數(shù)的步驟
a.確定函數(shù)的功能
b.根據(jù)功能確定函數(shù)名
c.確定參數(shù)(重點(diǎn)):
1.確定是否需要參數(shù)----->看實(shí)現(xiàn)函數(shù)功能需不需要從函數(shù)外部傳入數(shù)據(jù)到函數(shù)內(nèi)部
2.如果需要,需要幾個(gè)參數(shù)
d.實(shí)現(xiàn)函數(shù)的功能
e.確定返回值
5.函數(shù)調(diào)用
調(diào)用語法:
函數(shù)名(實(shí)參列表)
(1).函數(shù)名:調(diào)用的函數(shù)一定是已經(jīng)聲明過的,想要使用什么功能就調(diào)用對應(yīng)的函數(shù)
(2)實(shí)參列表:實(shí)參是用來給形參賦值的
6.注意事項(xiàng):
- 函數(shù)只有在調(diào)用時(shí)才能執(zhí)行
- 一定要保證每個(gè)形參都有值
- 函數(shù)的調(diào)用一定在函數(shù)的聲明后面
- 一個(gè)函數(shù)可以多次調(diào)用
7.舉例:
代碼實(shí)現(xiàn):
# 寫一個(gè)函數(shù),計(jì)算兩個(gè)數(shù)的和
def my_sum(num1, num2):
"""
求兩個(gè)數(shù)的和
:param num1: 提供第一個(gè)參數(shù),int
:param num2: 提供第二個(gè)參數(shù),int
:return: 對返回值進(jìn)行說明
"""
print(num1, num2)
print('==========')
print(num1 + num2)
# 函數(shù)的調(diào)用一定在函數(shù)的聲明后
my_sum(10, 30)
輸出結(jié)果:
10 30
==========
40
二,函數(shù)的參數(shù)
參數(shù)的作用:從函數(shù)外部給函數(shù)傳遞值
1.位置參數(shù):
傳參的時(shí)候,實(shí)參按順序給形參傳值
- 形參:定義函數(shù)時(shí),括號中的參數(shù)叫做形參
- 實(shí)參:具體的值
代碼實(shí)現(xiàn):
def func1(a, b, c):
print(a, b, c)
func1(1, 2, 3)
輸出結(jié)果:
1, 2, 3
2.關(guān)鍵字參數(shù):
有關(guān)鍵字參數(shù)時(shí),關(guān)鍵字參數(shù)必須在位置參數(shù)的后面,關(guān)鍵字參數(shù)之間不存在先后順序
代碼實(shí)現(xiàn):
def funct(a, b, c):
pirnt(a, b, c)
funct(1, 2, a=3)
#錯(cuò)誤調(diào)用
funct(a=1, 2, 3)
輸出結(jié)果:
3, 1, 2
3.參數(shù)的默認(rèn)值
調(diào)用參數(shù)有默認(rèn)值的函數(shù)時(shí),可以傳參,也可以不用傳參。
代碼實(shí)現(xiàn):
def func2(b, c, a=2):
print(a, b, c)
# 傳遞三個(gè)參數(shù)
func2(1, 2, 3)
print("=========")
# 傳遞兩個(gè)參數(shù)
func2(1, 3)
輸出結(jié)果:
3, 2, 1
=========
2, 1, 3
4.參數(shù)個(gè)數(shù)不足
參數(shù)個(gè)數(shù)不確定的時(shí)候,就在聲明函數(shù)的時(shí)候,形參前面加一個(gè)*,將形參變?yōu)樵M。調(diào)用函數(shù)的時(shí)候,這個(gè)函數(shù)會(huì)將對應(yīng)的實(shí)參作為作為元組保存起來
- 參數(shù)的個(gè)數(shù)不定,可以是形參中的部分參數(shù)不定
- 參數(shù)個(gè)數(shù)不定時(shí)可以不用傳參,對應(yīng)的參數(shù)的值就是一個(gè)空元組
- 個(gè)數(shù)不確定的參數(shù)要放到參數(shù)列表的最后
代碼實(shí)現(xiàn):
# 寫一個(gè)函數(shù),是求多個(gè)函數(shù)的和
def sum_nums(*nums):
print(*nums)
sum1 = 0
for item in nums:
sum1 += item
print(sum1)
# 傳遞多個(gè)參數(shù)
sum_nums(10, 20, 30)
print('======')
def func3(char, *nums):
print(char, nums)
func3(1, 2, 4, 5)
輸出結(jié)果:
60
======
1 (2, 4, 5)