Python 中的星号(*)是一个特殊符号,在其他编程语言中,它最广为人知的用途是作为乘法运算的符号。而在 Python 中,它的用途远不止于此,涵盖了算术运算、数据结构操作以及函数参数处理等多个方面。
1. 算术运算
星号用于算术运算是所有编程语言的通用做法。在 Python 中,单星号 * 表示乘法,双星号 ** 表示幂运算(指数运算)。
a = 3
b = 5
print("乘法:3×5 = {}".format(a * b))
print("指数:3 的 5 次方 = {}".format(a**b))
# 运行结果
# 乘法:3×5 = 15
# 指数:3 的 5 次方 = 243
注意运算符优先级,幂运算通常高于乘除,但在实际使用中建议显式使用括号以确保逻辑清晰。
2. 构造与解构
除了基本的算术运算,星号在 Python 中还可以用在数据结构的构造和解构中,这是 Python 特有的语法糖,极大地简化了代码。
2.1. 列表的构造与展开
如果要在一些数据中间的某个位置插入一个现有的列表来构造一个新列表,大部分语言只能通过循环来实现。而 Python 中的星号可以让我们用一行代码实现序列解包(Unpacking)。
lst = [1, 2, 3]
new_lst = [0, lst, 4, 5]
print("不使用*号,构造后的列表:{}".format(new_lst))
new_lst = [0, *lst, 4, 5]
print("使用*号,构造后的列表:{}".format(new_lst))
# 运行结果
# 不使用*号,构造后的列表:[0, [1, 2, 3], 4, 5]
# 使用*号,构造后的列表:[0, 1, 2, 3, 4, 5]
使用星号,可以自动将现有列表中的元素展开到当前列表中。这在合并多个列表时非常有用。
2.2. 列表的解构
简单来说,解构就是将列表中的元素分配给几个变量。利用星号,可以迅速将一个列表中的元素分为固定部分和可变部分。
# 列表解构
first, *middle, last = [0, 1, 2, 3, , ]
(.(first))
(.(middle))
(.(last))


