Python3中*和**運算子的用法詳解!
在學習python過程中,大家對*和**這兩個運算子應該都不陌生,是兩個比較常見的算術運算子。那麼你知道Python3中*和**運算子的用法是什麼嗎?以下是詳細的內容介紹。
在python中,*和**具有語法多義性,具體來說是有四類用法。
1、算數運算
* 代表乘法
** 代表乘方
>>>2 * 5
//10
>>>2 ** 5
//32
2、函式形參
*args和**kwargs主要用於函式定義。
你可以將不定數量的引數傳遞給一個函式。不定的意思是:預先並不知道,函式使用者會傳遞多少個引數給你,所以在這個場景下使用這兩個關鍵字。其實並不是必須寫成*args和**kwargs。*才是必須的,你也可以寫成*ar和**K。而寫成*args和**kwargs只是一個通俗的命名約定。
python函式傳遞引數的方式有兩種:
位置引數(positional argument)
關鍵詞引數(keyword argument)
*args與**kwargs的區別,兩者都是python中的可變引數:
*args表示任何多個無名引數,它本質是一個tuple。
**kwargs表示關鍵字引數,它本質上市一個dict。
如果同時使用*args和**kwargs時,必須*args引數列要在**kwargs之前。
def pt(*args,**kwargs)
print('a:',args, 'k:',kwargs)
pt(5,10, 'args='6, 'kwargs='9)
a:(5,10),k:{'args='6, 'kwargs='9}
3、函式實參
它們兩個除了用作算數之外還有一個形式就是用作函式的實參,格式為*args和**kwargs。其中*args是一個元組型別,代表多個匿名引數;**kwargs是一個字典型別,代表關鍵詞引數,示例如下:
def pt(info,info1)
print('info:',info)
print('info1:',info1)
args = (5,10) # 解引用
pt(*args) # 引數傳遞
info:5,info1:10
kwargs={'info1:'10, 'info:'5}
pt(**kwargs)
info:10,info1:5
4、序列解包
序列解包只需要用到*,序列解包沒有**。
x,*y=5,10,15
x=5
y=[10,15]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2929052/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JS逗號運算子的用法詳解JS
- Python3中的運算子Python
- js中的|與 && 運算子詳解JS
- Python3 * 和 ** 運算子Python
- javascript中&&運算子和||運算子的使用JavaScript
- 移位運算子詳解
- Python3中strip()、lstrip()、rstrip()用法詳解Python
- Java 中 this 和 super 的用法詳解Java
- 除法運算子/在Python2和Python3中的區別Python
- c語言運算子詳解C語言
- oracle中的exists和not exists和in用法詳解Oracle
- Python3 中 configparser 模組解析配置的用法詳解Python
- oracle中的exists 和not exists 用法詳解Oracle
- C# 中的 null 包容運算子 “!” —— 概念、由來、用法和注意事項C#Null
- C++運算子過載詳解C++
- Java運算子>>與>>>區別詳解Java
- 賦值運算子和+號的用法(兩個練習)賦值
- javascript ||或運算子的其他用法JavaScript
- MySQL的四種運算子(算術運算子、比較運算子、邏輯運算子和位運算子)MySql
- 8.Golang中的運算子-算術運算子、關係運算子、邏輯運算子、賦值運算子Golang賦值
- C++中運算子 &和&&、|和|| 的區別C++
- C# 中 System.Index 結構體和 Hat 運算子(^)的全新用法C#Index結構體
- Java中的按位取反運算子,哪位能詳解一下?Java
- C++中的運算子和表示式C++
- C#中的?.和!.運算子(連結)C#
- python 三元運算子詳解Python
- js中的運算子JS
- MySQL中的運算子MySql
- Oralce 使用SQL中的exists 和not exists 用法詳解SQL
- Java中的資料型別和運算子Java資料型別
- Python中運算子"=="和"is"的差別分析Python
- Linux中&&和&,|和||用法及區別詳解!Linux
- java短路運算子和邏輯運算子的區別Java
- Java 運算子詳解與字串處理技巧Java字串
- Python3 中 sys.argv[ ]的用法解釋Python
- javascript等號==運算子用法介紹JavaScript
- java運算子和表示式詳細介紹Java
- sar命令的用法和詳解