Python: 星号 * 用法详解

2023年 7月 30日 57.3k 0

不念总结了一波python里的星号* 用法,如有写得不到位,欢迎评论区交流!

图片[1]-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

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论