'''實參:呼叫函式,在括號內傳入的實際值,值可以為常量、變數、表示式或三者的組合
*****
形參:定義函式,在括號內宣告的變數名,用來接受外界傳來的值
'''
'''
注:形參隨著函式的呼叫而產生,隨著呼叫結束而銷毀
'''
'''位置實參:不用明確形參名的傳參方式,一定按照位置給形參傳值
關鍵字實參:必須明確形參名字與值為形參傳值,可以不用按照位置
*****
注:混用
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)
# positional argumentdef 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傳
# 混用
# 位置形參與預設形參同時存在,預設形參必須在後
def fn1(a,b,c=10,d=20):
print(a, b, c, d)
# 位置形參必須傳值,預設形參分情況傳值
fn1(100, 200, d=1000)
# 可變長形參會以 元組 形式接受 位置形參與預設形參未接受完的 所有傳入的位置實參,用索引來取第幾個# 可變長形參只能由 位置實參 來傳值 *****
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.所以關鍵字形參:只能 關鍵字實參 傳值
函式的引數
參考 先說一下預設引數 當我們呼叫乙個函式的時候,忘記傳入相應的引數了,那麼函式肯定呼叫失敗。為了讓函式可以在 失誤 的情況下也可以呼叫出來,那麼預設引數就可以派上用場了。例如,計算x2 可以完全把第二個引數值設為預設引數。def power x,n 2 s 1 while n 0 n n 1 s ...
函式的引數
沒有引數 定義函式和呼叫函式時括號裡都不寫內容 2.有乙個引數 傳什麼就是什麼 3.有多個引數 站在實參的角度上 按位置傳參 按關鍵字傳參 混著用可以 但是必須先按照位置傳參,再按照關鍵字傳參。不能給同乙個變數傳多個值。站在形參的角度上 位置引數 必須傳,且有幾個引數就傳幾個值 預設引數 可以不傳,...
函式的引數
現在,我們已經把函式返回值相關的事情研究清楚了,我們自己已經完成了乙個可以返回字串長度的函式。但是現在這個函式還是不完美,之前我們使用len函式的時候得是length len hello world 這樣我可以想計算誰就計算誰的長度。但是現在我們寫的這個函式,只能計算乙個 hello world 的...