網站首頁 編程語言 正文
鈴鈴鈴…… 上課了
老師在黑板寫著這么一個標題 《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.cnblogs.com/englyf/p/16931223.html
相關推薦
- 2022-10-30 C++解析wav文件方法介紹_C 語言
- 2022-09-07 Python實現不寫硬盤上傳文件_python
- 2023-05-06 Flutter學習之SliverList和SliverGird的使用詳解_Android
- 2022-06-25 JQuery選擇器用法詳解_jquery
- 2022-07-04 PyTorch計算損失函數對模型參數的Hessian矩陣示例_python
- 2022-12-11 docke-cli的調試環境搭建過程_docker
- 2022-05-18 ASP.NET?MVC實現區域路由_實用技巧
- 2022-06-02 Android實現水平帶刻度的進度條_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支