python*與**收集/解包序列(含實例講解)

本博文源於python基礎,旨在對收集參數與序列解包進行學習與練習

參數傳遞

參數傳遞時,定義的函數如果既有無默認值的函數,又有默認值的函數,應當把有默認值的參數後面。這樣在調用函數時,前面的無默認值的參數就可以依次序列取得調用時所給的值。對於默認值參數,沒有依次取得時,就使用默認值,給函數調用帶來很大的便利。

可變數量參數傳遞

*參數傳遞

單“*”表示參數是個元組。比如下面的例子

例子:輸出單*參數的類型值

def change_para_num(*tp1):
    print(type(tp1))
    print(tp1)
change_para_num(1)
change_para_num(2,3,4)

在這裏插入圖片描述
通過這個大家會發現,單星元組接收的效果。當自定義函數時,參數中含有前面所介紹的三種類型參數,則一般來說帶星號的參數應放在最後。

**參數傳遞

使用元組來收集參數的參數時,調用時提供的參數不能爲關鍵字參數,如果要收集不定數量的關鍵字參數,就加兩顆星,類型變爲字典。

例子:輸出立方體的屬性:顏色、體積和重量

def cube(name, **nature):
    all_nature = {'x': 1,
                  'y': 1,
                  'z': 1,
                  'color': 'white',
                  'weight': 1}
    all_nature.update(nature)
    print(name, "立方體的屬性:")
    print("體積:", all_nature['x'] * all_nature['y'] * all_nature['z'])
    print("顏色:", all_nature['color'])
    print("重量:", all_nature['weight'])

cube('first')
cube('second',y=3,color='red')
cube('third',z=2,color='green',weight=10)

在這裏插入圖片描述

拆解序列的函數

實例加強理解

拆解元組

用單星

拆解字典

用雙星

例子:拆解元組與字典實現加數運算

def mynum(a,b):
    return a+b

print('拆解元組調用:')
print(mynum(*(3,4)))
print('拆解字典調用:')
print(mynum(**({'a':3,'b':4})))

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章