最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python函數(shù)之任意數(shù)量的實(shí)參方式

 更新時(shí)間:2024年02月18日 11:04:06   作者:奔走在路上的小白  
這篇文章主要介紹了python函數(shù)之任意數(shù)量的實(shí)參方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

傳遞任意數(shù)量的實(shí)參

有的時(shí)候,預(yù)先不知道函數(shù)需要接受多少個(gè)實(shí)參,好在python允許函數(shù)從調(diào)用語句中收集任意數(shù)量的實(shí)參。

舉個(gè)實(shí)際的例子吧,比如,我們?cè)谧鱿銍妵姷碾s糧煎餅(嗯,聽起來就香~),它可以添加很多喜歡的配料,但是我們不知道來的顧客想要加什么。

來看看一段code,函數(shù)只有一個(gè)形參*toppings,但不管調(diào)用語句提供了多少實(shí)參,這個(gè)形參都將它們統(tǒng)統(tǒng)收入囊中:

def make_jianbing(*toppings):
	print(toppings)

make_jianbing('regou')
make_jianbing('weilong','liang ge eggs','regou')
('regou',)
('weilong', 'liang ge eggs', 'regou')

形參名*toppings中的星號(hào)讓python創(chuàng)建一個(gè)名為toppings的空元組,并將收到的所有值都封裝到這個(gè)元組中。

函數(shù)體內(nèi)的print語句通過生成輸出來證明python能夠處理使用一個(gè)值調(diào)用函數(shù)的情形,也能處理使用三個(gè)值來調(diào)用函數(shù)的情形。

它以類似的方式處理不同的調(diào)用。

注意python將實(shí)參封裝到一個(gè)元組中,即便函數(shù)只收到一個(gè)值也如此。

來繼續(xù)擴(kuò)展一下:

def make_jianbing(*toppings):
	print("\nMakeing a jianbing with the following toppings: ")
	for topping in toppings:
		print("-" + topping)

make_jianbing('regou')
make_jianbing('weilong','liang ge eggs','regou')
Makeing a jianbing with the following toppings: 
-regou

Makeing a jianbing with the following toppings: 
-weilong
-liang ge eggs
-regou

不管函數(shù)收到的實(shí)參個(gè)數(shù)是多少個(gè),這種語法都非常管用。

結(jié)合使用位置實(shí)參和任意數(shù)量實(shí)參

如果要讓函數(shù)接受不同類型的實(shí)參,必須在函數(shù)定義中將接納任意數(shù)量實(shí)參的形參放在最后。

python先匹配位置實(shí)參和關(guān)鍵字實(shí)參,再將余下的實(shí)參都收集到最后一個(gè)形參中。

比如呢?

上面的例子中,可能一個(gè)顧客需要多份煎餅,就需要一個(gè)數(shù)量的實(shí)參,必須將該形參放在形參*toppings的前面:

def make_jianbing(count,*toppings):
	print("\nMaking a " + str(count) + "-ge jianbing with the following toppings: ")
	for topping in toppings:
		print("- " + topping)
		
make_jianbing(2,'kaochang')
make_jianbing(4,'weilong','shuanghuandan','kaochang')
Making a 2-ge jianbing with the following toppings: 
- kaochang

Making a 4-ge jianbing with the following toppings: 
- weilong
- shuanghuandan
- kaochang

上面函數(shù)定義,python將收到的第一個(gè)值存儲(chǔ)到count中,并將其他的所有值都存儲(chǔ)在toppings中。

使用任意數(shù)量的關(guān)鍵字實(shí)參

有時(shí)候啊,需要接受任意數(shù)量的實(shí)參,但預(yù)先不知道傳遞給函數(shù)的會(huì)是什么樣的信息。

遇到這樣的需求時(shí),可將函數(shù)編寫成能夠接受任意數(shù)量的鍵-值對(duì)-----調(diào)用語句提供了多少就接受多少。

舉個(gè)創(chuàng)建用戶簡(jiǎn)介的例子:

比如會(huì)收到用戶的信息,但不知道會(huì)是什么樣的信息,比如下面示例中,函數(shù)build_profile()接受名和姓,同時(shí)還接受任意數(shù)量的關(guān)鍵字實(shí)參:

def build_profile(first, last, **user_info):
""" 創(chuàng)建一個(gè)字典,其中包含我們知道的有關(guān)用戶的一切 """
	profile = {}
	profile['first_name']  = first
	profile['last_name'] = last
	for key,value in user_info.items():
		profile[key] = value
	return profile
	
user_profile = build_profile('albert' , 'einstenin' , location='princeton',
								field = 'physics')
print(user_profile)

執(zhí)行結(jié)果:

{'field': 'physics', 'first_name': 'albert', 'location': 'princeton', 'last_name': 'einstenin'}

函數(shù)build_profile()的定義要求提供名和姓,同時(shí)允許用戶根據(jù)需要提供任意數(shù)量的名稱-值對(duì)。

形參**user_info中的兩個(gè)星號(hào)讓python創(chuàng)建一個(gè)名為user_info的空字典,并將收到的所有名稱-值對(duì)都封裝到這個(gè)字典中。

在這個(gè)函數(shù)中,可以像訪問其他字典那樣訪問user_info中的名稱-值對(duì)。

返回的字典包括用戶的名和姓,還有求學(xué)的地方和所學(xué)專業(yè)。調(diào)用這個(gè)函數(shù)時(shí)不管額外提供了多少個(gè)鍵-值對(duì),函數(shù)都能正確地處理。

編寫函數(shù)時(shí),可以以各種方式混合使用位置實(shí)參,關(guān)鍵字實(shí)參和任意數(shù)量的實(shí)參。

練習(xí):

def make_guandongzhu(*foods):
	print(foods)
	for food in foods:
		print("\nYour select guan dong zhu include: " + food)
	
make_guandongzhu('luobo','moyusi','haidian')
make_guandongzhu('xianggujirouwan','yuzixianbei')
make_guandongzhu('yudoufu','doupi','eggs')
('luobo', 'moyusi', 'haidian')

Your select guan dong zhu include: luobo

Your select guan dong zhu include: moyusi

Your select guan dong zhu include: haidian
('xianggujirouwan', 'yuzixianbei')

Your select guan dong zhu include: xianggujirouwan

Your select guan dong zhu include: yuzixianbei
('yudoufu', 'doupi', 'eggs')

Your select guan dong zhu include: yudoufu

Your select guan dong zhu include: doupi

Your select guan dong zhu include: eggs

練習(xí):

def cars_info(changjia,xinghao,**infos):
	cars = {}
	cars['producer'] = changjia
	cars['car'] = xinghao
	for key,value in infos.items():
		cars[key] = key
		cars[value] = value
	return cars

car_info = cars_info('beiqi','hongqi',ranliao='qiyou',money='pianyi')
print(car_info)

{'car': 'hongqi', 'ranliao': 'ranliao', 'pianyi': 'pianyi', 'producer': 'beiqi', 'qiyou': 'qiyou', 'money': 'money'}

注意,函數(shù)參數(shù)中是兩個(gè)星號(hào)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用TensorFlow實(shí)現(xiàn)簡(jiǎn)單線性回歸模型

    使用TensorFlow實(shí)現(xiàn)簡(jiǎn)單線性回歸模型

    這篇文章主要為大家詳細(xì)介紹了使用TensorFlow實(shí)現(xiàn)簡(jiǎn)單線性回歸模型,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Python在Word中進(jìn)行圖片添加、替換和刪除操作

    Python在Word中進(jìn)行圖片添加、替換和刪除操作

    通過Python編程實(shí)現(xiàn)Word文檔中圖片的動(dòng)態(tài)管理,可精準(zhǔn)實(shí)現(xiàn)圖片的插入定位、條件化替換及冗余元素刪除,下面就跟隨小編來看看具體實(shí)現(xiàn)代碼吧
    2025-03-03
  • 詳解Python if-elif-else知識(shí)點(diǎn)

    詳解Python if-elif-else知識(shí)點(diǎn)

    本篇文章給大家總結(jié)了Python中if-elif-else的相關(guān)知識(shí)點(diǎn)以及語法相關(guān)內(nèi)容,有興趣的朋友參考學(xué)習(xí)下。
    2018-06-06
  • Python中print()函數(shù)使用實(shí)例詳解

    Python中print()函數(shù)使用實(shí)例詳解

    Python的print()函數(shù)可以打印輸出,常用來將內(nèi)容打印到控制臺(tái),print()是python中最常見的一個(gè)函數(shù),本文就通過一些實(shí)例來給大家講講如何使用print()函數(shù),需要的朋友可以參考下
    2023-07-07
  • python獲取對(duì)象信息的實(shí)例詳解

    python獲取對(duì)象信息的實(shí)例詳解

    在本篇文章和里小編給大家整理的是一篇關(guān)于python獲取對(duì)象信息的實(shí)例詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-07-07
  • 一文帶你深入理解Python魔法方法

    一文帶你深入理解Python魔法方法

    在Python中,魔法方法是指那些以雙下劃線開頭和結(jié)尾的特殊方法,它們是Python的內(nèi)置方法,對(duì)應(yīng)于Python對(duì)象的各種運(yùn)算符,這篇文章將深入探討Python的一些魔法方法,并通過示例展示如何使用它們,需要的朋友可以參考下
    2023-06-06
  • 在Python的web框架中編寫創(chuàng)建日志的程序的教程

    在Python的web框架中編寫創(chuàng)建日志的程序的教程

    這篇文章主要介紹了在Python的web框架中編寫創(chuàng)建日志的程序的教程,示例代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04
  • pycham查看程序執(zhí)行的時(shí)間方法

    pycham查看程序執(zhí)行的時(shí)間方法

    今天小編就為大家分享一篇pycham查看程序執(zhí)行的時(shí)間方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Django項(xiàng)目創(chuàng)建及管理實(shí)現(xiàn)流程詳解

    Django項(xiàng)目創(chuàng)建及管理實(shí)現(xiàn)流程詳解

    這篇文章主要介紹了Django項(xiàng)目創(chuàng)建及管理實(shí)現(xiàn)流程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Python棧類實(shí)例分析

    Python棧類實(shí)例分析

    這篇文章主要介紹了Python棧類,實(shí)例分析了Python實(shí)現(xiàn)棧的入棧、出棧、移除、判定為空的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06

最新評(píng)論

织金县| 利辛县| 固原市| 新乐市| 保康县| 昆山市| 隆安县| 观塘区| 沈阳市| 城步| 桐梓县| 三亚市| 崇义县| 高邮市| 南靖县| 新竹县| 镇坪县| 青岛市| 固阳县| 桃园县| 黄梅县| 兴隆县| 将乐县| 紫云| 新密市| 宝丰县| 疏附县| 桐庐县| 渑池县| 桑日县| 河源市| 白山市| 齐河县| 广宁县| 鄂托克前旗| 商水县| 当雄县| 岑巩县| 华亭县| 东乌珠穆沁旗| 普洱|