日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python不定长参数详解

發布時間:2024/2/28 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python不定长参数详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不定長參數

如果想要一個函數能不固定接收任意多個參數,可以使用不定長參數。

1.不定長參數兩種基本形式:

python自定義函數中有兩種不定長參數,第一種是*XXX,在傳入額外的參數時可以不用指明參數名,直接傳入參數值即可。第二種是**XXX,這種類型返回的是字典,傳入時需要指定參數名。

加了一個星號 * 不定長參數會以元組(tuple)的形式導入,存放所有未命名的變量參數。加了兩個星號 ** 的參數會以字典的形式導入,存放已命名的變量參數。
例如
代碼

#coding=utf-8#第一個是元組形式,第二個是字典形式 def sun(*a, **b):print(a)print(b)sun(1, 55258, x=25412, y=5123512) (1,55258) {'x':25412,'y':5123512}

2.實例

2.1實例一

不定長參數簡單示例,第一個是普通參數,第二個是不定長參數,我們可依次打印輸出,不定長參數為元組的形式,如b代表的是(55258,25412,5123512),而a作為普通參數,只能代表第一個1。

代碼

#coding=utf-8#不定長參數簡單示例,第一個是普通參數,第二個是不定長參數 def sun(a, *b):print(a)print(b)sun(1,55258,25412,5123512)

運行結果

?2.2實例二

在a, *b, **c同時出現的時候,如下:

代碼

#coding=utf-8#使用不定長參數傳固定值,注意,b、c可省略,a不可省略 def fuzhi(a, *b, **c):print(a)print(b)print(c) fuzhi(853521, 65134, 635263, 45563, 365, x=99, y=999)

運行結果

?個實例中,不定長參數b、c可省略,而普通參數a不可省略,假如我們省略a

代碼

#coding=utf-8#使用不定長參數傳固定值,注意,b、c可省略,a不可省略 def fuzhi(a, *b, **c):print(a)print(b)print(c) fuzhi()

運行結果

?則會出現以上報錯情況

2.3實例三

當我們用不定長參數來累加時:

代碼

#coding=utf-8#用不定長參數實行累加 print(1, 2, 3, 4, 5)def sum(*nums):"""求多個數之和:param list_one: 接收數字的不定長參數,會把參數組裝成一個(tuple)元祖,賦值給不定長參數:return: 返回所有數字之和"""result = 0for num in nums:if isinstance( num, (int,float)):result = result + numreturn resultsum()print(sum(1, 2, 3))

運行結果

?2.4實例四

當我們將普通參數寫在不定長參數寫在后面時

代碼

#coding=utf-8def JayChou(a, *b, c):print(a)print(b)print(c) JayChou(1, 555, 5768, 55451)

運行結果

會出現如下報錯,因此,位置不能隨意更改

?2.5實例五

如果在函數調用時沒有指定參數,它就是一個空元組。我們也可以不向函數傳遞未命名的變量

#coding=utf-8#如果在函數調用時沒有指定參數,它就是一個空元組。我們也可以不向函數傳遞未命名的變量。 def void_tuple(a, *tuplela):print(a)for b in tuplela:print(b)returnprint(1) print(2, 3, 4, 5)

運行結果

?

總結

以上是生活随笔為你收集整理的python不定长参数详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。