函數的定義
1.函數:就是對實現某一特定功能的代碼塊的封裝
2.作用:封裝(將功能綁定在一個函數中,想要使用者這個功能的時候,直接調用這個函數)
***3.怎么聲明函數:
格式:def 函數名(參數列表):
'''函數說明'''
函數體
def :是python中聲明函數的關鍵字
函數名:標識符。PEP8。見名知義(看到函數名要大概知道函數的功能)
函數說明:對函數的功能和參數以及返回值進行說明
():是固定格式
參數列表:(形參列表)參數名1,參數名2,參數名3...
參數的功能是用來接收從外部傳到函數內部的數據
函數體:實現函數功能的代碼塊,可能會包含一個return語句
4.初學者聲明函數的步驟:
a.確定函數的功能
b.確定函數名
c.確定參數
確定需不需要參數
確定需要幾個參數
(看實現函數的功能需不需要從外面傳數據到函數里面)
d.實現函數的功能
e.確定返回值
***5.函數的調用
函數名(實參列表)
函數名:調用的函數一定的是已經聲明過的,想要使用什么功能就調用對應的函數
實參列表:實參是用來給形參賦值的
函數的調用過程
0.回到函數聲明的地方
1.使用實參給形參賦值
2.執行函數體
3.函數體執行完成后,回到函數調用的位置。
***注意:
1.函數只有在調用的時候才會執行
2.函數調用的時候一定要保證每個形參都有值
3.一個函數可以調用多次
寫一個函數計算兩個數的和
def my_sum(num1, num2):
"""
(這寫函數的功能的描述)求兩個數的和
:param num1: 提供第一個數,int
:param num2: 提供第二個數,int
:return: 對返回值進行說明
"""
print(num1, num2) # 10 300
print('=======') # =======
print(num1+num2) # 310
# 函數的調用一定要寫在函數的聲明后面
my_sum(10, 300)
練習:聲明一個函數,功能是打印10個*(**********)
調用這個函數
def xing_hao(str1):
print(10*str1) # **********
xing_hao('*')
def print_star():
print('*'*10) # **********
print_star()
函數的參數
參數的作用:從函數的外面給函數傳值
1.位置參數
傳參的時候,實參按順序給形參賦值
def func1(a, b, c):
print(a, b, c) # 10 20 30
func1(10, 20, 30)
2.關鍵字參數
調用函數的時候:
函數名(參數=值)
def func1(a, b, c):
print(a, b, c) # 10 20 30
func1(b=20, a=10, c=30)
說明:位置參數和關鍵字參數可以混著來
def func1(a, b, c):
print(a, b, c) # 10 20 30
func1(10, c=30, b=20)
def func11(a, b='cc', c='bb', d='a'):
print(a,b,c,d) # 10 cc bb 100
func11(10,d='100')
3.參數的默認值
python中函數聲明的時候,參數可以設置默認值,有默認值的參數必須放在參數列表的最后
調用參數有默認值的函數,有默認值的參數可以傳參也可以不傳參
def func2(b, a=10, c=100):
print(a, b, c) # 20 10 30
func2(10, 20, 30)
def func2(b, a=10, c=100):
print(a, b, c) #20 10 100
func2(10, 20)
4.參數個數不定
函數參數的個數不確定的時候,就再聲明函數的時候,形參的前面加一個*,將形參變成元祖。
調用函數的時候,這個參數會將對應的實參作為元祖的元素保存起來
寫一個函數,求多個數的和
def my_sum(*numbers):
print(numbers) # (10, 20, 22, 10, 20)
sum1 = 0
for item in numbers:
sum1 += item
print(sum1) # 82
my_sum(10, 20, 22, 10, 20)
注意:參數個數不定,可以是形參中的一部分是不定的
個數不確定的參數要放到參數的最后
def func1(char,*numbers):
print(char,numbers) # a (10, 20, 39)
func1('a', 10, 20, 39)
參數個數不定,也可以不存在,對應的參數的值就是一個空的元祖
def func1(char,*numbers):
print(char,numbers) # a ()
func1('a')