Python不定長引數

2021-09-11 20:49:41 字數 2287 閱讀 4719

記錄了python函式的不定長引數,用*來接收不定長的資料。

在定義函式時,可以在形參前邊加上乙個*,這樣這個形參將會獲取到所有的實參,它將會將所有的實參儲存到乙個元組中

*a會接受所有的位置實參,並且會將這些實參統一儲存到乙個元組中(裝包

fn3函式的使用:

**形參可以接收其他的關鍵字引數,它會將這些引數統一儲存到乙個字典中,字典的key就是引數的名字,字典的value就是引數的值

**形參只能有乙個,並且必須寫在所有引數的最後

*形參只能接收位置引數,而不能接收關鍵字引數

解包)注意**中fn4函式的使用,可以在呼叫中加入*來解析元組,**來解析字典。 

# 不定長的引數

# 定義乙個函式,可以求任意個數字的和

def sum(*nums):

# 定義乙個變數,來儲存結果

result = 0

# 遍歷元組,並將元組中的數進行累加

for n in nums :

result += n

print(result)

sum(123,456,789,10,20,30,40)

# 在定義函式時,可以在形參前邊加上乙個*,這樣這個形參將會獲取到所有的實參

# 它將會將所有的實參儲存到乙個元組中

a,b,*c = (1,2,3,4,5,6)

# *a會接受所有的位置實參,並且會將這些實參統一儲存到乙個元組中(裝包)

def fn(*a):

print("a =",a,type(a))

# fn(1,2,3,4,5)

# 帶星號的形參只能有乙個

# 帶星號的引數,可以和其他引數配合使用

# 第乙個引數給a,第二個引數給b,剩下的都儲存到c的元組中

# def fn2(a,b,*c):

# print('a =',a)

# print('b =',b)

# print('c =',c)

# 可變引數不是必須寫在最後,但是注意,帶*的引數後的所有引數,必須以關鍵字引數的形式傳遞

# 第乙個引數給a,剩下的位置引數給b的元組,c必須使用關鍵字引數

# def fn2(a,*b,c):

# print('a =',a)

# print('b =',b)

# print('c =',c)

# 所有的位置引數都給a,b和c必須使用關鍵字引數

# def fn2(*a,b,c):

# print('a =',a)

# print('b =',b)

# print('c =',c)

# 如果在形參的開頭直接寫乙個*,則要求我們的所有的引數必須以關鍵字引數的形式傳遞

def fn2(*,a,b,c):

print('a =',a)

print('b =',b)

print('c =',c)

# fn2(a=3,b=4,c=5)

# *形參只能接收位置引數,而不能接收關鍵字引數

# def fn3(*a) :

# print('a =',a)

# **形參可以接收其他的關鍵字引數,它會將這些引數統一儲存到乙個字典中

# 字典的key就是引數的名字,字典的value就是引數的值

# **形參只能有乙個,並且必須寫在所有引數的最後

def fn3(b,c,**a) :

print('a =',a,type(a))

print('b =',b)

print('c =',c)

# fn3(b=1,d=2,c=3,e=10,f=20)

# 引數的解包(拆包)

def fn4(a,b,c):

print('a =',a)

print('b =',b)

print('c =',c)

# 建立乙個元組

t = (10,20,30)

# 傳遞實參時,也可以在序列型別的引數前新增星號,這樣他會自動將序列中的元素依次作為引數傳遞

# 這裡要求序列中元素的個數必須和形參的個數的一致

fn4(*t)

# 建立乙個字典

d =

# 通過 **來對乙個字典進行解包操作

fn4(**d)

不定長引數 python

如果向乙個函式傳遞的引數的數量每次都不同,想要讓函式去做每次相加或者其他的事的時候,可以用 變數名 傳遞不定長引數,傳進去以後的變數會變成乙個元組def sum a result 0print type a for i in a result i return result result sum 1...

python不定長引數詳解

如果想要乙個函式能不固定接收任意多個引數,可以使用不定長引數。python自定義函式中有兩種不定長引數,第一種是 在傳入額外的引數時可以不用指明引數名,直接傳入引數值即可。第二種是 這種型別返回的是字典,傳入時需要指定引數名。加了乙個星號 不定長引數會以元組 tuple 的形式匯入,存放所有未命名的...

Python基礎 不定長引數

python自定義函式中有兩中不定長引數,第一種是 name,第二種是 name。加了星號 的引數會以元組 tuple 的形式匯入,存放所有未命名的變數引數。加了兩個星號 的引數會以字典的形式匯入。第一種形式的不定長引數,在傳入額外的引數時可以不用指明引數名,直接傳入引數值即可,第二種因為返回的是字...