如果想要乙個函式能不固定接收任意多個引數,可以使用不定長引數。
python自定義函式中有兩種不定長引數,第一種是****,在傳入額外的引數時可以不用指明引數名,直接傳入引數值即可。第二種是*****,這種型別返回的是字典,傳入時需要指定引數名。
加了乙個星號 * 不定長引數會以元組(tuple)的形式匯入,存放所有未命名的變數引數。加了兩個星號 ** 的引數會以字典的形式匯入,存放已命名的變數引數。
例如**
#coding=utf-8
#第乙個是元組形式,第二個是字典形式
defsun
(*a,
**b)
:print
(a)print
(b)sun(1,
55258
, x=
25412
, y=
5123512
)
執行結果![](https://pic.w3help.cc/e72/d4c090a42ee16de23962103d0a3c3.jpeg)
不定長引數簡單示例,第乙個是普通引數,第二個是不定長引數,我們可依次列印輸出,不定長引數為元組的形式,如b代表的是(55258,25412,5123512),而a作為普通引數,只能代表第乙個1。
**
#coding=utf-8
#不定長引數簡單示例,第乙個是普通引數,第二個是不定長引數
defsun
(a,*b)
:print
(a)print
(b)sun(1,
55258
,25412
,5123512
)
執行結果![](https://pic.w3help.cc/024/a58542f19999536b3474b61b57f2a.jpeg)
在a, *b, **c同時出現的時候,如下:
**
#coding=utf-8
#使用不定長引數傳固定值,注意,b、c可省略,a不可省略
deffuzhi
(a,*b,
**c)
:print
(a)print
(b)print
(c)fuzhi(
853521
,65134
,635263
,45563
,365
, x=
99, y=
999)
執行結果![](https://pic.w3help.cc/4ed/e0f7a749d16d52feccb6f6e1477f0.jpeg)
不定長引數b、c可省略,而普通引數a不可省略,假如我們省略a
**
#coding=utf-8
#使用不定長引數傳固定值,注意,b、c可省略,a不可省略
deffuzhi
(a,*b,
**c)
:print
(a)print
(b)print
(c)fuzhi(
)
執行結果![](https://pic.w3help.cc/86c/0c8f9c8abc1acac40c042384e63c4.jpeg)
則會出現以上報錯情況
當我們用不定長引數來累加時:
**
#coding=utf-8
#用不定長引數實行累加
print(1
,2,3
,4,5
)def
sum(
*nums)
:"""
求多個數之和
:param list_one: 接收數字的不定長引數,會把引數組裝成乙個(tuple)元祖,賦值給不定長引數
:return: 返回所有數字之和
"""result =
0for num in nums:
ifisinstance
( num,
(int
,float))
: result = result + num
return result
sum(
)print
(sum(1
,2,3
))
執行結果![](https://pic.w3help.cc/ea8/4d725411fea476dd573324d0a9dbe.jpeg)
當我們將普通引數寫在不定長引數寫在後面時
**
#coding=utf-8
defjaychou
(a,*b, c)
:print
(a)print
(b)print
(c)jaychou(1,
555,
5768
,55451
)
執行結果會出現如下報錯,因此,位置不能隨意更改
如果在函式呼叫時沒有指定引數,它就是乙個空元組。我們也可以不向函式傳遞未命名的變數
#coding=utf-8
#如果在函式呼叫時沒有指定引數,它就是乙個空元組。我們也可以不向函式傳遞未命名的變數。
defvoid_tuple
(a,*tuplela)
:print
(a)for b in tuplela:
print
(b)return
print(1
)print(2
,3,4,5)
執行結果 Python不定長引數
記錄了python函式的不定長引數,用 來接收不定長的資料。在定義函式時,可以在形參前邊加上乙個 這樣這個形參將會獲取到所有的實參,它將會將所有的實參儲存到乙個元組中 a會接受所有的位置實參,並且會將這些實參統一儲存到乙個元組中 裝包 fn3函式的使用 形參可以接收其他的關鍵字引數,它會將這些引數統...
不定長引數 python
如果向乙個函式傳遞的引數的數量每次都不同,想要讓函式去做每次相加或者其他的事的時候,可以用 變數名 傳遞不定長引數,傳進去以後的變數會變成乙個元組def sum a result 0print type a for i in a result i return result result sum 1...
Python基礎 不定長引數
python自定義函式中有兩中不定長引數,第一種是 name,第二種是 name。加了星號 的引數會以元組 tuple 的形式匯入,存放所有未命名的變數引數。加了兩個星號 的引數會以字典的形式匯入。第一種形式的不定長引數,在傳入額外的引數時可以不用指明引數名,直接傳入引數值即可,第二種因為返回的是字...