Python 星號 * 的各種用法


建立時間: 2023年1月20日 03:19
更新時間: 2023年1月20日 11:16

說明

因為我常常看到很多 * 除了當作乘法之外,還有作為函式參數、引數,久了沒看到又忘記這是幹嘛的,所以特別寫一篇紀錄 * 的用途

乘法

大家應該都知道 * 最常用來乘法

data = 9 * 9
print(data)

輸出

81

冪運算子

如同數學的次方運算,只要在運算式中使用 ** 就可以做為冪運算

data = 9 ** 2
print(data)

輸出

81

重複運算子

有些資料型態搭配 * 就會當成重複運算子,以下提供幾個範例讓大家了解

重複字串

字串 * n 就是重複 n 遍

hi = 'hi '
print(hi * 3)

輸出

hi hi hi

* 還有一個用途就是拿來畫聖誕樹 :)

for i in range (1, 6):
    empty_count = 5 - i
    asterisk_count = 2 * i - 1
    print (" " * empty_count, end = '')
    print ("*" * asterisk_count)

輸出

    *
   ***
  *****
 *******
*********

重複串列

你可以用 * 初始化一個全部都是0的串列

empty_list = [0] * 5
print (empty_list)

輸出

[0, 0, 0, 0, 0]

位置引數 (positional argument)

打包

在函式的參數前加上 * 這可以將剩下的參數都打包在那個變數裡

# 打包
def print_args(*args):
    for arg in args:
        print(arg)


# 呼叫函式
print_args(1, 2, 3)

輸出

1
2
3

拆包

使用 * 將可迭代物件當作位置引數進行拆解

def print_args(a, b, c):
    print(a, b, c)


numbers = [1, 2, 3]
# 拆包
print_args(*numbers)

輸出

1 2 3

關鍵字引數 (keyword argument)

打包

在函式的參數前加上 ** 這可以將剩下的關鍵字參數都打包在那個變數裡

# 打包
def print_args(**kwargs):
    for key, value in kwargs.items():
        print(f"{key} = {value}")


# 呼叫函式
print_args(a=1, b=2, c=3)

輸出

a = 1
b = 2
c = 3

注意如果同時有位置引數 *args 和關鍵字引數 **kwargs*args要放在前面

def f(*args, **kwargs):
    pass

拆包

使用 ** 拆解字典當作關鍵字引數

def add_numbers(a, b, c):
    return a + b + c


kwargs = {'a': 1, 'b': 2, 'c': 3}
# 關鍵字引數拆包
print(add_numbers(**kwargs))

輸出

6

參考

觀看次數: 1441
argumentasteriskkeywordmultiplicationpackingparameterpositionpythonrepetitionstarunpacking重複運算子乘法關鍵字引數參數星號
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!