Python— * 和 ** 的區別和作用

以下內容主要摘自:        

https://blog.csdn.net/yilovexing/article/details/80577510 (* 和 **區別)

https://blog.csdn.net/yilovexing/article/details/80576788(序列解包)

(1)算數運算

         * 乘法                       **  乘方 等同於 pow(a,b)

a,b = 2,3
print(a*b)  # 6
print(a**b) # 8

(2)函數形參

       *args 表示任何多個無名參數,把接收到的參數形成一個元組,本質是一個 tuple

       **kwargs 表示關鍵字參數,它本質上是一個 dict

       同時使用 *args 和 **kwargs 時,必須 *args 參數列要在 **kwargs 之前

(3)函數實參

       若函數的形參是定長參數,也可以使用 *args 和 **kwargs 調用函數,類似對元組和字典進行解引用。

(4)序列解包

         序列解包只有*,**沒有這個作用。(序列解包是 Python 3.0 之後纔有的語法)

         序列解包的就是問題方便處理,在多重賦值時,用於接收的變量數不等於list等賦值時候可以用。

a,b,*c = [1,2,3,4]

'''
a=1,b=2,c=[3,4]'''

 

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