函式的引數

2022-07-26 03:51:09 字數 2014 閱讀 5242

'''

實參:呼叫函式,在括號內傳入的實際值,值可以為常量、變數、表示式或三者的組合

​*****

形參:定義函式,在括號內宣告的變數名,用來接受外界傳來的值

​'''

​'''

注:形參隨著函式的呼叫而產生,隨著呼叫結束而銷毀

'''​

'''

位置實參:不用明確形參名的傳參方式,一定按照位置給形參傳值

關鍵字實參:必須明確形參名字與值為形參傳值,可以不用按照位置​​

*****

注:混用

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 argument

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傳​​

# 混用

# 位置形參與預設形參同時存在,預設形參必須在後

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 的...