Python中你所不知道的星號?*?用法
鈴鈴鈴…… 上課了 老師在黑板寫著這么一個標(biāo)題 《Python: 你所不知道的星號 * 用法》 同學(xué)A: 呃,星號不就是用來做乘法的嘛,這個還有必要專門列出來嗎? 同學(xué)B: 老師這會又在賣關(guān)子了? 同學(xué)C忍不住嗦地一聲站起來喊: 難道寫代碼還得強(qiáng)行找理由秀一波星星嗎? 老師: 這位同學(xué),你太優(yōu)秀了,先坐下。 平常對于星號的應(yīng)用場景用得少是不需要了解太多用法的。 不過,學(xué)編程的過程少不了要去閱讀優(yōu)秀的源代碼庫, 也就時常會對星號 * 的貿(mào)然出現(xiàn)和用途感到困惑, 所以今天就讓你們好好了解一下會有哪些用法, 不要求全記住,略懂一二即可,略懂。。。
這里嘗試總結(jié)一波python里的星號* 用法,如有寫得不到位,歡迎評論區(qū)交流!看下文...
數(shù)值乘法
最常見的用法,星號用在兩個數(shù)之間實(shí)現(xiàn)兩個數(shù)的乘法計(jì)算
e.g.
mul = 1 * 2 print(mul)
Output:
2
成員倍增器
如果星號前面的操作數(shù)是序列,比如列表、元組、字符串等,后操作數(shù)是n,那么是對序列的成員倍增,列表的成員數(shù)量會變成原來的n倍。
e.g.
list = ['hello'] * 2 print(list)
Output:
['hello', 'hello']
冪運(yùn)算
兩個星號 ** 表示對星號前面的操作數(shù)執(zhí)行后面操作數(shù)的冪運(yùn)算,簡單點(diǎn)說就是求多少次方的計(jì)算。
e.g.
print(10 ** 3)
Output:
1000
函數(shù)參數(shù)解壓操作符
有時候在打印數(shù)據(jù)時,需要對原始數(shù)據(jù)進(jìn)行輸出,并且在數(shù)據(jù)之間插入一些分隔符。一般想到的是用循環(huán)處理,但是看起來語句有些啰里啰唆的。
e.g.
print(' '.join(['sunday', 'monday', 'tuesday', 'wednesday'])) print(' '.join('helloworld!'))
Output:
sunday monday tuesday wednesday h e l l o w o r l d !
在這里要介紹的是更方便的方法,那就是用星號做解壓處理。
調(diào)用函數(shù)時,在輸入?yún)?shù)前添加星號 * 可以對參數(shù)執(zhí)行解壓操作,比如對列表、元組、字符串等序列類型的輸入?yún)?shù)做解壓之后,就變成了單個數(shù)據(jù)。
e.g.
print(*'list')
Output:
l i s t
e.g.
print(*['hello', 'world', '!'])
Output:
hello world !
函數(shù)參數(shù)修飾符
- 添加星號 * 在函數(shù)的參數(shù)前時,表示該參數(shù)是不定數(shù)量的位置參數(shù)。
很多時候向函數(shù)輸入的位置參數(shù)是不定數(shù)目的,這樣子就可以借助星號修飾符來表述了。在函數(shù)內(nèi)該參數(shù)存儲的數(shù)據(jù)被構(gòu)造成元組類型,也就是說傳入的不定參數(shù)被包含在元組內(nèi)。
e.g.
def add(*args): return sum(args) print(add(1, 2, 3, 4, 5))
Output:
15
- 添加兩個星號 ** 在函數(shù)的參數(shù)前時,表示該參數(shù)是不定數(shù)量的關(guān)鍵字參數(shù)。
向函數(shù)輸入的不定數(shù)目的參數(shù)除了可以是位置參數(shù)之外,也可以是關(guān)鍵字參數(shù)。這個時候就不能用單個星號做修飾符了,而是雙星號 **,比如 **kwargs。
在函數(shù)內(nèi)該不定數(shù)目參數(shù)存儲的數(shù)據(jù)屬于字典類型,也就是說傳入的不定參數(shù)被包含在字典內(nèi)。
e.g.
def food_type(**kwargs): for item in kwargs: print(f"{kwargs[item]} belongs to {item}") food_type(fruit = 'apple', meat = 'animal', vegetable = 'potato')
Output:
apple belongs to fruit animal belongs to meat potato belongs to vegetable
好了,簡簡單單介紹完畢,你看懂了嗎?如果沒有就留個言吧,我改總可以了吧?
到此這篇關(guān)于Python中你所不知道的星號 * 用法的文章就介紹到這了,更多相關(guān)Python中星號 * 用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
numpy的sum函數(shù)的axis和keepdim參數(shù)詳解
這篇文章主要介紹了numpy的sum函數(shù)的axis和keepdim參數(shù)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Python實(shí)現(xiàn)多態(tài)、協(xié)議和鴨子類型的代碼詳解
問起面向?qū)ο蟮娜筇匦裕瑤缀趺總€人都能對答如流:封裝、繼承、多態(tài)。今天我們就要來說一說Python實(shí)現(xiàn)多態(tài)、協(xié)議和鴨子類型,感興趣的朋友跟隨小編一起看看吧2019-05-05Python讀取mat文件,并轉(zhuǎn)為csv文件的實(shí)例
今天小編就為大家分享一篇Python讀取mat文件,并轉(zhuǎn)為csv文件的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07selenium+unittest實(shí)現(xiàn)web自動化的示例代碼
本文主要介紹了selenium+unittest實(shí)現(xiàn)web自動化的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Python實(shí)現(xiàn)獲取磁盤剩余空間的2種方法
這篇文章主要介紹了Python實(shí)現(xiàn)獲取磁盤剩余空間的2種方法,結(jié)合具體實(shí)例形式分析了Python操作計(jì)算機(jī)硬件的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-06-06python隨機(jī)生成庫faker庫api實(shí)例詳解
今天小編就為大家分享一篇python隨機(jī)生成庫faker庫api實(shí)例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11