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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python3函数可变输入参量

發(fā)布時(shí)間:2025/3/20 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3函数可变输入参量 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

通常我們?cè)趐ython中定義一個(gè)函數(shù)的時(shí)候,需要給出明確的函數(shù)輸入?yún)⒘?#xff0c;比如對(duì)于一個(gè)數(shù)學(xué)函數(shù)z=f(x,y)就表示,z是關(guān)于x和y的一個(gè)函數(shù)。

但是如果對(duì)于未知參量的函數(shù),比如函數(shù)形式可以是z=f(x,y),但也可以是z=f(x,y,m,n,i,j,k),在不確定入?yún)⒌臅r(shí)候,就可以采用python中的*args和**kwargs參數(shù)。

*args參數(shù)的使用方法

首先用一個(gè)例子來(lái)說(shuō)明一下*args的基本用法,這個(gè)參量可以替代函數(shù)括號(hào)中的固定變量,從數(shù)據(jù)結(jié)構(gòu)上說(shuō)是一個(gè)可變長(zhǎng)度的tuple:

def fargs(*args):s = 0for variable in args:s += float(variable)return sif __name__ == '__main__':import sysargs_string = ''for number in sys.argv[1:]: # 從命令行獲取任意長(zhǎng)度的參數(shù)args_string += numberargs_string += ','s = eval('fargs({})'.format(args_string)) # 直接用字符串執(zhí)行函數(shù)print ('The sum of {} is: {}'.format(args_string, s))

在這個(gè)案例中,我們不僅介紹了*args的使用方法,也利用了命令行參數(shù)獲取和eval函數(shù)這兩個(gè)python中常見(jiàn)的使用技巧。其中關(guān)于獲取命令行參數(shù)的使用技巧,可以參考這一篇博客。上述代碼的執(zhí)行效果如下所示:

[dechin@dechin-manjaro args]$ python3 test_args.py 1 2 3 3.14 The sum of 1,2,3,3.14, is: 9.14 [dechin@dechin-manjaro args]$ python3 test_args.py 1 2 3 3.14 0.86 The sum of 1,2,3,3.14,0.86, is: 10.0

這里給了兩個(gè)不同長(zhǎng)度的輸入,通過(guò)函數(shù)fargs完成了求和的工作,并且輸入的長(zhǎng)度是可變的。

**kwargs的用法

kwargs的用法是類(lèi)似于上面介紹的*args的,區(qū)別在于kwargs本質(zhì)上是傳入了一個(gè)“字典”,或者稱(chēng)之為一個(gè)鍵值對(duì)。需要注意的是,這里每一個(gè)鍵值對(duì)的數(shù)據(jù)格式都是tuple類(lèi)型的,而不是python中的字典類(lèi)型,所以上面說(shuō)到“字典”時(shí)加了引號(hào)。參考示例如下:

''' 學(xué)習(xí)中遇到問(wèn)題沒(méi)人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書(shū)! ''' def fkwargs(**kwargs):s = 0print ('Key values input: ',kwargs)for key, variable in kwargs.items():s += float(variable)return sif __name__ == '__main__':import sysargs_string = ''for number in sys.argv[1:]:args_string += numberargs_string += ','s = eval('fkwargs({})'.format(args_string))print ('The sum of {} is: {}'.format(args_string, s))

這里的場(chǎng)景我們?cè)O(shè)置為一個(gè)買(mǎi)菜購(gòu)物計(jì)算總價(jià)格的函數(shù),輸入的參數(shù)是每一個(gè)購(gòu)買(mǎi)的物品及其價(jià)格,最后的輸出是購(gòu)買(mǎi)總價(jià)格,測(cè)試結(jié)果如下所示:

[dechin@dechin-manjaro args]$ python3 test_kwargs.py egg=20 beaf=60 milk=10 Key values input: {'egg': 20, 'beaf': 60, 'milk': 10} The sum of egg=20,beaf=60,milk=10, is: 90.0 [dechin@dechin-manjaro args]$ python3 test_kwargs.py egg=20 water=1 Key values input: {'egg': 20, 'water': 1} The sum of egg=20,water=1, is: 21.0

總結(jié)概要

為了使得輸入?yún)?shù)的可擴(kuò)展性更好,python中自帶了args和kwargs兩種方法,可以用于表示一個(gè)tuple類(lèi)型的可變長(zhǎng)度入?yún)ⅰF渲衋rgs是一系列的一元變量的輸入,kwargs是一系列鍵值對(duì)的輸入,可以認(rèn)為是一個(gè)二元變量的輸入。雖然這兩種方案也都可以用自行實(shí)現(xiàn)的tuple來(lái)替代,但是直接使用這兩種定義會(huì)節(jié)省很多自定義可變?nèi)雲(yún)⒌姆爆崱?/p>

結(jié)尾給大家推薦一個(gè)非常好的學(xué)習(xí)教程,希望對(duì)你學(xué)習(xí)Python有幫助!

Python基礎(chǔ)入門(mén)教程推薦:更多Python視頻教程-關(guān)注B站:Python學(xué)習(xí)者

【Python教程】全網(wǎng)最容易聽(tīng)懂的1000集python系統(tǒng)學(xué)習(xí)教程(答疑在最后四期,滿滿干貨)

Python爬蟲(chóng)案例教程推薦:更多Python視頻教程-關(guān)注B站:Python學(xué)習(xí)者

2021年P(guān)ython最新最全100個(gè)爬蟲(chóng)完整案例教程,數(shù)據(jù)分析,數(shù)據(jù)可視化,記得收藏哦

總結(jié)

以上是生活随笔為你收集整理的python3函数可变输入参量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。