python單星號(*)與雙星號(**)使用示例demo
本章將詳細(xì)介紹python中*與**操作符的使用場景以及注意事項,并給出示例demo。
1.作為運算符
*表示乘法運算
**表示乘方運算
代碼 示例:
#1.* ** 作為運算符 print('\n------運算符測試------') a = 3*2 #乘法 b = 3**2 #乘方 print("a = ", a) #輸出6 print("b = ", b) #輸出9
執(zhí)行結(jié)果:
2.作為函數(shù)形參
*在python中做函數(shù)形參,表示的是一個可變長度的序列,類型為tuple,即將所有參數(shù)放入一個元組(tuple)中,被函數(shù)使用。
**在python中做函數(shù)形參,表示的是一個可變長度的序列,類型為dict,即將所有的關(guān)鍵字參數(shù),放入一個字典(dict)中, 被函數(shù)使用。
*與**作為形參同時出現(xiàn)時,**必須在最后面.
代碼示例:
#2.作為形參 print('\n------形參測試------') def printx(*arg1, **arg2): print("arg1={0}, type:{1}".format(arg1, type(arg1))) print("arg2={0}, type:{1}".format(arg2, type(arg2))) #調(diào)用 P1 = printx(1,2, key1=1, key2=2)
代碼執(zhí)行結(jié)果:
3.作為函數(shù)實參
在list/tuple/set前加*,會把序列中的所有元素解包成位置參數(shù)
在dict前加*,會把dict的鍵變成位置參數(shù);加**,把字典的鍵值對變成關(guān)鍵字參數(shù)。
A = (a,b,c)
B = {“key1” :1, “key2”:2}
P3 = Printx(*A) # 等同于printx(a,b,c)
P3 = Printx(*A, *B) #等同于printx(a,b,c,key1,key2)
P3 = Printx(*A, **B) #等同于printx(a,b,c,key1=1,key2=2)
代碼示例:
def printx(*arg1, **arg2): print("arg1={0}, type:{1}".format(arg1, type(arg1))) print("arg2={0}, type:{1}".format(arg2, type(arg2))) #3.實參測試 print('\n------實參測試------') A = (1,2,3) K1 = {'key1':1, 'key2':2} P2 = printx(*A, *K1) #注意在dict前加一個*,只把dict的 '鍵' 作為位置參傳遞 print('') P3= printx(*A, **K1)
執(zhí)行結(jié)果:
4. 作為序列解包
注意序列解包時*解包為list,不再是tuple了
1. 先對不帶*的變量解包,剩余的數(shù)據(jù)在劃分給帶*的變量
x,y,*z = 1,2,3,4,5 #等同于 x=1, y = 2, z= [3,4,5]
X,*y,z = 1,2,3,4,5 #等同于 x=1, y = [2,3,4], z= 5
2. 如果左值比右值要多,那么帶 * 的變量默認(rèn)為空列表
x,y,*z = 1,2 #等同于 x=1, y = 2, z= []
x,*y,z = 1,2 #x=1, y = [], z= 2
3. 單*只解包dict的鍵, **解包dict鍵值對
key_A = {‘key1’:1, ‘key2’:2}
key_B = {“key3” :3, “key4”:4}
X = {*key_A} #等同于x= {‘key1’, ’key2’}
X = {**key_A} #等同于x= {‘key1’:1, ‘key2’:2}
X = {**key_A, **key_B} #等同于組包,x={‘key1’:1, ‘key2’:2, “key3” :3, “key4”:4}
注意:組包時,若鍵相同,則用后面的鍵值替換前面的,即最終合并后,為后面的鍵值對。
代碼示例:
#4.解包測試 print('\n------解包測試------') x,y,*z = 1,2,3,4,5 print("x={0}, y= {1}, z={2}".format(x,y,z)) x,*y,z = 1,2,3,4,5 print("x={0}, y= {1}, z={2}".format(x,y,z)) x,*y,z = 1,2 print("x={0}, y= {1}, z={2}".format(x,y,z)) x,y,*z = 1,2 print("x={0}, y= {1}, z={2}".format(x,y,z)) #解包&組包 K2 = {'key3':3, 'key4':4} K3 = {'key5':5, 'key6':6} k4 = {**K2, **K3} print("k4=", k4)
執(zhí)行結(jié)果:
注意
在Python中默認(rèn)的函數(shù)參數(shù)順序是:必選參數(shù)、默認(rèn)參數(shù)、*args和**kwargs。如下所示:
def testFunc(name, age=10, *agrs, **kwargs):
pass
整體測試代碼:
import torch #1.* ** 作為運算符 print('\n------運算符測試------') a = 3*2 #乘法 b = 3**2 #乘方 print("a = ", a) #輸出6 print("b = ", b) #輸出9 #2.作為形參 print('\n------形參測試------') def printx(*arg1, **arg2): print("arg1={0}, type:{1}".format(arg1, type(arg1))) print("arg2={0}, type:{1}".format(arg2, type(arg2))) #調(diào)用 P1 = printx(1,2, key1=1, key2=2) #3.實參測試 print('\n------實參測試------') A = (1,2,3) K1 = {'key1':1, 'key2':2} P2 = printx(*A, *K1) #注意在dict前加一個*,只把dict的 '鍵' 作為位置參傳遞 print('') P3= printx(*A, **K1) #4.解包測試 print('\n------解包測試------') x,y,*z = 1,2,3,4,5 print("x={0}, y= {1}, z={2}".format(x,y,z)) x,*y,z = 1,2,3,4,5 print("x={0}, y= {1}, z={2}".format(x,y,z)) x,*y,z = 1,2 print("x={0}, y= {1}, z={2}".format(x,y,z)) x,y,*z = 1,2 print("x={0}, y= {1}, z={2}".format(x,y,z)) #解包&組包 K2 = {'key3':3, 'key4':4} K3 = {'key5':5, 'key6':6} k4 = {**K2, **K3} print("k4=", k4)
運行結(jié)果:
總結(jié)
到此這篇關(guān)于python單星號(*)與雙星號(**)使用的文章就介紹到這了,更多相關(guān)python單星號(*)與雙星號(**)使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyQt5重寫QComboBox的鼠標(biāo)點擊事件方法
今天小編就為大家分享一篇PyQt5重寫QComboBox的鼠標(biāo)點擊事件方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06python將Dataframe格式的數(shù)據(jù)寫入opengauss數(shù)據(jù)庫并查詢
這篇文章主要介紹了python將Dataframe格式的數(shù)據(jù)寫入opengauss數(shù)據(jù)庫并查詢,文章介紹詳細(xì)具有一定的參考價值,希望對你的學(xué)習(xí)有所幫助2022-04-04python使用Pillow將照片轉(zhuǎn)換為1寸報名照片的教程分享
在現(xiàn)代科技時代,我們經(jīng)常需要調(diào)整和處理照片以適應(yīng)特定的需求和用途,本文將介紹如何使用wxPython和Pillow庫,通過一個簡單的圖形界面程序,將選擇的照片轉(zhuǎn)換為指定尺寸的JPG格式,并保存在桌面上,需要的朋友可以參考下2023-09-09pycharm 2019 最新激活方式(pycharm破解、激活)
這篇文章主要介紹了最新2019pycharm激活方式(pycharm破解、激活),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01玩轉(zhuǎn)Python發(fā)短信的實現(xiàn)
用Python實現(xiàn)發(fā)短信功能,當(dāng)監(jiān)控到問題出現(xiàn)時,短信報警,使問題能得到及時的處理。當(dāng)然,我相信,用Python發(fā)短信應(yīng)用場景不止此一處,下面我們開始Python發(fā)短信的實現(xiàn),感興趣的朋友參考下吧2022-01-01