日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

Python中你所不知道的星號(hào)?*?用法_python

作者:englyf八戒 ? 更新時(shí)間: 2022-12-25 編程語(yǔ)言
鈴鈴鈴…… 上課了

老師在黑板寫(xiě)著這么一個(gè)標(biāo)題 《Python: 你所不知道的星號(hào) * 用法》

同學(xué)A:
    呃,星號(hào)不就是用來(lái)做乘法的嘛,這個(gè)還有必要專門列出來(lái)嗎?

同學(xué)B:
    老師這會(huì)又在賣關(guān)子了?

同學(xué)C忍不住嗦地一聲站起來(lái)喊:
    難道寫(xiě)代碼還得強(qiáng)行找理由秀一波星星嗎?

老師:
    這位同學(xué),你太優(yōu)秀了,先坐下。
    平常對(duì)于星號(hào)的應(yīng)用場(chǎng)景用得少是不需要了解太多用法的。
    不過(guò),學(xué)編程的過(guò)程少不了要去閱讀優(yōu)秀的源代碼庫(kù),
    也就時(shí)常會(huì)對(duì)星號(hào) * 的貿(mào)然出現(xiàn)和用途感到困惑,
    所以今天就讓你們好好了解一下會(huì)有哪些用法,
    不要求全記住,略懂一二即可,略懂。。。

這里嘗試總結(jié)一波python里的星號(hào)* 用法,如有寫(xiě)得不到位,歡迎評(píng)論區(qū)交流!看下文...

數(shù)值乘法

最常見(jiàn)的用法,星號(hào)用在兩個(gè)數(shù)之間實(shí)現(xiàn)兩個(gè)數(shù)的乘法計(jì)算

e.g.

mul = 1 * 2
print(mul)

Output:

2

成員倍增器

如果星號(hào)前面的操作數(shù)是序列,比如列表、元組、字符串等,后操作數(shù)是n,那么是對(duì)序列的成員倍增,列表的成員數(shù)量會(huì)變成原來(lái)的n倍。

e.g.

list = ['hello'] * 2
print(list)

Output:

['hello', 'hello']

冪運(yùn)算

兩個(gè)星號(hào) ** 表示對(duì)星號(hào)前面的操作數(shù)執(zhí)行后面操作數(shù)的冪運(yùn)算,簡(jiǎn)單點(diǎn)說(shuō)就是求多少次方的計(jì)算。

e.g.

print(10 ** 3)

Output:

1000

函數(shù)參數(shù)解壓操作符

有時(shí)候在打印數(shù)據(jù)時(shí),需要對(duì)原始數(shù)據(jù)進(jìn)行輸出,并且在數(shù)據(jù)之間插入一些分隔符。一般想到的是用循環(huán)處理,但是看起來(lái)語(yǔ)句有些啰里啰唆的。

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 !

在這里要介紹的是更方便的方法,那就是用星號(hào)做解壓處理。

調(diào)用函數(shù)時(shí),在輸入?yún)?shù)前添加星號(hào) * 可以對(duì)參數(shù)執(zhí)行解壓操作,比如對(duì)列表、元組、字符串等序列類型的輸入?yún)?shù)做解壓之后,就變成了單個(gè)數(shù)據(jù)。

e.g.

print(*'list')

Output:

l i s t

e.g.

print(*['hello', 'world', '!'])

Output:

hello world !

函數(shù)參數(shù)修飾符

  • 添加星號(hào) * 在函數(shù)的參數(shù)前時(shí),表示該參數(shù)是不定數(shù)量的位置參數(shù)。

很多時(shí)候向函數(shù)輸入的位置參數(shù)是不定數(shù)目的,這樣子就可以借助星號(hào)修飾符來(lái)表述了。在函數(shù)內(nèi)該參數(shù)存儲(chǔ)的數(shù)據(jù)被構(gòu)造成元組類型,也就是說(shuō)傳入的不定參數(shù)被包含在元組內(nèi)。

e.g.

def add(*args):
    return sum(args)

print(add(1, 2, 3, 4, 5))

Output:

15
  • 添加兩個(gè)星號(hào) ** 在函數(shù)的參數(shù)前時(shí),表示該參數(shù)是不定數(shù)量的關(guān)鍵字參數(shù)。

向函數(shù)輸入的不定數(shù)目的參數(shù)除了可以是位置參數(shù)之外,也可以是關(guān)鍵字參數(shù)。這個(gè)時(shí)候就不能用單個(gè)星號(hào)做修飾符了,而是雙星號(hào) **,比如 **kwargs。

在函數(shù)內(nèi)該不定數(shù)目參數(shù)存儲(chǔ)的數(shù)據(jù)屬于字典類型,也就是說(shuō)傳入的不定參數(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

好了,簡(jiǎn)簡(jiǎn)單單介紹完畢,你看懂了嗎?如果沒(méi)有就留個(gè)言吧,我改總可以了吧?

原文鏈接:https://www.cnblogs.com/englyf/p/16931223.html

欄目分類
最近更新