星号在Python里有多种含义和用法,下面将从不同的角度对其进行详细阐述。
一、参数解包
在函数定义或函数调用时,可以使用星号来进行参数解包。
# 参数解包示例 # 定义一个接收任意个参数的函数 def my_func(*args): for arg in args: print(arg) # 调用函数时使用星号进行参数解包 my_func(1, 2, 3, 4)
在上面的示例中,星号*
用于接收任意个参数,并将这些参数打包成一个元组。
二、可变参数
星号还可以用于定义函数时的可变参数,即可以接收不定数量的参数。
# 可变参数示例 def add(*nums): sum = 0 for num in nums: sum += num return sum print(add(1, 2, 3, 4)) # 输出10 print(add(1, 2, 3, 4, 5)) # 输出15
在上面的示例中,星号*
用于定义可变参数nums
,可以接收任意个数的参数,并将这些参数打包成一个元组。
三、可变关键字参数
除了可变参数,Python还支持可变关键字参数,这是指可以接收不定数量的关键字参数。
# 可变关键字参数示例 def print_info(**info): for key, value in info.items(): print(key + ': ' + value) print_info(name='Alice', age='18') # 输出name: Alice, age: 18 print_info(city='Beijing', country='China') # 输出city: Beijing, country: China
在上面的示例中,星号**
用于定义可变关键字参数info
,可以接收不定数量的关键字参数,并将这些参数打包成一个字典。
四、解构赋值
星号还可以用于解构赋值,这是一种快速、方便地将可迭代对象中的元素解包给多个变量的方法。
# 解构赋值示例 numbers = [1, 2, 3, 4, 5] first, *middle, last = numbers print(first) # 输出1 print(middle) # 输出[2, 3, 4] print(last) # 输出5
在上面的示例中,星号*
用于解构赋值,将可迭代对象numbers
中的第一个元素赋值给first
,最后一个元素赋值给last
,将剩余的元素赋值给middle
。
五、重复运算符
星号还可以用作重复运算符,表示重复一个字符串若干次。
# 重复运算符示例 string = 'abc' result = string * 3 print(result) # 输出'abcabcabc'
在上面的示例中,星号*
用作重复运算符,将字符串'abc'
重复3次。