1.實參:呼叫引數,在括號內傳入的實際值,值可以為常量、變數、表示式或三者的組合
2.形參:定義函式時,在括號內宣告的變數名,用來接受外界傳來的值
1.位置實參:不用明確形參名的傳參方式,一定按照位置給形參傳值
2.關鍵字實參:必須明確形參名字與值為形參傳值,可以不用按照為宗旨
3.注意:
1.關鍵字實參必須出現在位置實參後
2.多個位置實參還是按照位置傳參
3.關鍵字實參為沒有從位置實參拿到值的形參傳值,可以不用按照指定順序
def fn2(a, b, c, d, e, f):
print(a, b, c, d, e, f)
fn2(10, 20, 30, e=100, f=500, d=200)
def fn(a, b, c):
print(a, b, c)
位置形參可以由 位置實參 與 關鍵字實參 來傳值
fn(10, 20, 30)
fn(a=10, b=20, c=30)
def fn(a=10,b=20):
print(a, b)
預設形參可以由 位置實參 與 關鍵字實參 來傳值,還可以不用傳值(採用自身預設值)
fn()
fn(20, 30)
fn(a=200, b=300)
fn(100) # 就給a傳
fn(b=100) # 就給b傳
2.1 混用
位置形參與預設形參同時存在,預設形參必須在後
def fn1(a,b,c=10,d=20):
print(a, b, c, d)
位置形參必須傳值,預設形參分情況傳值
fn1(100, 200, d=1000)
3.可變長形參
可變長形參會以 元組 形式接受 位置形參與預設形參未接受完的 所有傳入的位置實參,用索引來取第幾個
可變長形參只能由 位置實參 來傳值
def fn(a, b=10, *args):
print(a, b)
print(args)
小細節:可變長形參只能接受位置實參的值,位置實參還必須在關鍵字實參前,
導致預設形參只能由位置實參來傳值
fn(1, 20, 100, 200) # 1給a 20給b,不能用b=20傳 100,200給args
前提:出現在 * 之後的形參
def fn(a, b=10, *, c, d=20, e):
pass
c,d,e都是出現在*之後,都是關鍵字形參,由於必須由 關鍵字實參 來傳值,沒有順序的強行要求
可變長關鍵字形參:用來接收沒有被關鍵字形參接收完的關鍵字形參,也只能由關鍵字實參來傳值
用字典來存放資料
def fn(**kwargs):
print(kwargs)
fn(a=10,b=20) #
dic =
fn(**dic) #
def fn(a, b, c=10, *args, d, e=20, f, **kwargs):
pass
位置形參:a、b
預設形參:c
可變長位置形參:args
無初值關鍵字形參:d、f
有初值關鍵字形參:e
可變長關鍵字引數:kwargs
1.位置形參與預設形參: 能用 位置實參 關鍵字實參 傳值
2.可變長位置形參:只能 位置實參 傳值
3.所以關鍵字形參:只能 關鍵字實參 傳值
y = 40
def aaa(arg=y):
print(y)
print(arg)
aaa()
#4020
Day 10 遞迴函式
include long func int func函式呼叫 int main long func int n 呼叫形參 已知斐波那契函式1,2,3,5,8 n 1,n得到分段函式n 1時為1 n 2時為2 n 2時為 n 1 n 2 同理若求8的n次方時分段函式n 0時為1 n 1時為8 8 n ...
day10 函式高階
1.1什麼是返回值 返回值就是從函式內部傳遞到函式外部的資料 預設情況下函式內部產生的新資料,在函式外部不能使用 1.2怎麼確定函式返回值 1 python中每個函式都有返回值,預設情況下是none,返回值是什麼就看執行函式體的時候遇到的return關鍵字後面的資料是什麼 如果沒有遇到return,...
day10 函式的高階
順序 位置引數 動態接收位置引數 預設值 動態接收關鍵字引數 位置引數 args 預設引數值 kwargs 一.函式引數 動態傳參 1.動態接受位置引數 在引數位置編寫 表示接收任意內容 動態接收引數的時候要注意 動態引數必須在位置引數後面 2.動態接收關鍵字引數 動態接收關鍵字引數一定在最後面 在...