以下內容為本人的學習筆記,如需要轉載,請宣告原文鏈接 微信公眾號「englyf」https://mp.weixin.qq.com/s/FHyosiG_tegF5NRUEs7UdA
本文大概 1193 個字,閱讀需花 6 分鐘
內容不多,但也花了一些精力
如有余力,歡迎點贊收藏分享,謝謝!
鈴鈴鈴…… 上課了
老師在黑板寫著這么一個標題 《Python: 你所不知道的星號 * 用法》
同學A:
呃,星號不就是用來做乘法的嘛,這個還有必要專門列出來嗎?
同學B:
老師這會又在賣關子了?
同學C忍不住嗦地一聲站起來喊:
難道寫代碼還得強行找理由秀一波星星嗎?
老師:
這位同學,你太優秀了,先坐下,
平常對于星號的應用場景用得少是不需要了解太多用法的,
不過,學編程的程序少不了要去閱讀優秀的源代碼庫,
也就時常會對星號 * 的貿然出現和用途感到困惑,
所以今天就讓你們好好了解一下會有哪些用法,
不要求全記住,略懂一二即可,略懂,,,
這里嘗試總結一波python里的星號* 用法,如有寫得不到位,歡迎評論區交流!看下文...
數值乘法
最常見的用法,星號用在兩個數之間實作兩個數的乘法計算
e.g.
mul = 1 * 2
print(mul)
Output:
2
成員倍增器
如果星號前面的運算元是序列,比如串列、元組、字串等,后運算元是n,那么是對序列的成員倍增,串列的成員數量會變成原來的n倍,
e.g.
list = ['hello'] * 2
print(list)
Output:
['hello', 'hello']
冪運算
兩個星號 ** 表示對星號前面的運算元執行后面運算元的冪運算,簡單點說就是求多少次方的計算,
e.g.
print(10 ** 3)
Output:
1000
函式引數解壓運算子
有時候在列印資料時,需要對原始資料進行輸出,并且在資料之間插入一些分隔符,一般想到的是用回圈處理,但是看起來陳述句有些啰里啰唆的,
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 !
在這里要介紹的是更方便的方法,那就是用星號做解壓處理,
呼叫函式時,在輸入引數前添加星號 * 可以對引數執行解壓操作,比如對串列、元組、字串等序列型別的輸入引數做解壓之后,就變成了單個資料,
e.g.
print(*'list')
Output:
l i s t
e.g.
print(*['hello', 'world', '!'])
Output:
hello world !
函式引數修飾符
- 添加星號 * 在函式的引數前時,表示該引數是不定數量的位置引數,
很多時候向函式輸入的位置引數是不定數目的,這樣子就可以借助星號修飾符來表述了,在函式內該引數存盤的資料被構造成元組型別,也就是說傳入的不定引數被包含在元組內,
e.g.
def add(*args):
return sum(args)
print(add(1, 2, 3, 4, 5))
Output:
15
- 添加兩個星號 ** 在函式的引數前時,表示該引數是不定數量的關鍵字引數,
向函式輸入的不定數目的引數除了可以是位置引數之外,也可以是關鍵字引數,這個時候就不能用單個星號做修飾符了,而是雙星號 **,比如 **kwargs,
在函式內該不定數目引數存盤的資料屬于字典型別,也就是說傳入的不定引數被包含在字典內,
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
好了,簡簡單單介紹完畢,你看懂了嗎?如果沒有就留個言吧,我改總可以了吧?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/538516.html
標籤:Python
上一篇:python中的檔案操作
下一篇:<三>關于多載 隱藏 覆寫
