網(wǎng)站首頁(yè) 編程語(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
相關(guān)推薦
- 2022-09-04 Go語(yǔ)言指針用法詳解_Golang
- 2022-08-21 golang中defer的基本使用教程_Golang
- 2021-12-24 利用FileReader.readAsText()讀取文件內(nèi)容并保存到服務(wù)器
- 2022-10-06 詳解hive常見(jiàn)表結(jié)構(gòu)_數(shù)據(jù)庫(kù)其它
- 2022-10-27 React事件處理和表單的綁定詳解_React
- 2022-05-20 springCloud_Nacos服務(wù)搭建
- 2022-09-08 Go語(yǔ)言中make和new函數(shù)的用法與區(qū)別_Golang
- 2022-03-03 百度地圖 添加 左鍵菜單 Cannot read property 'remove' of unde
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支