亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

章節
問答
課簽
筆記
評論
占位
占位

Python函數使用可變關鍵字參數

可變參數在使用上確實方便,函數會把可變參數當作tuple去處理,tuple在使用上有一定的局限性,比如有時候想找到特定位置的參數,只能通過下標的方式去尋找,如果順序發生變化得時候,下標就會失效,函數邏輯就得重新修改實現。
Python函數提供可變關鍵字參數,對于可變關鍵字參數,可以通過關鍵字的名字key找到對應的參數值,想想這和我們之前學習過的什么類似?是的沒錯,dict,Python會把可變關鍵字參數當作dict去處理;對于可變關鍵字參數,一般使用**kwargs來表示。
例如,想要打印一個同學的信息,可以這樣處理:

def info(**kwargs):
    print('name: {}, gender: {}, age: {}'.format(kwargs.get('name'), kwargs.get('gender'), kwargs.get('age')))

info(name = 'Alice', gender = 'girl', age = 16)

對于一個擁有必需參數,默認參數,可變參數,可變關鍵字參數的函數,定義順序是這樣的:

def func(param1, param2, param3 = None, *args, **kwargs):
    print(param1)
    print(param2)
    print(param3)
    print(args)
    print(kwargs)

func(100, 200, 300, 400, 500, name = 'Alice', score = 100)
# ==> 100
# ==> 200
# ==> 300
# ==> (400, 500)
# ==> {'name': 'Alice', 'score': 100}

當然,這么多類型的參數,很容易導致出錯,在實際使用上,不建議定義這么多的參數。

任務

編寫一個函數,它接受關鍵字參數names,gender,age三個list,分別包含同學的名字、性別和年齡,請分別把每個同學的名字、性別和年齡打印出來。

?不會了怎么辦

參考答案:

def info(**kwargs):
    names = kwargs['names']
    gender_list = kwargs['gender']
    age_list = kwargs['age']
    index = 0
    for name in names:
        gender = gender_list[index]
        age = age_list[index]
        print('name: {}, gender: {}, age: {}'.format(name, gender, age))
        index += 1

info(names = ['Alice', 'Bob', 'Candy'], gender = ['girl', 'boy', 'girl'], age = [16, 17, 15])
||

提問題

寫筆記

公開筆記
提交
||

請驗證,完成請求

由于請求次數過多,請先驗證,完成再次請求

加群二維碼

打開微信掃碼自動綁定

您還未綁定服務號

綁定后可得到

  • · 粉絲專屬優惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問題答復提醒
  • · 賬號支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書簽

邀請您關注公眾號
關注后,及時獲悉本課程動態

舉報

0/150
提交
取消
全部 精華 我要發布
全部 我要發布
最熱 最新
只看我的

手記推薦

更多

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?