Python中星号*的多种用法详解

晚来风
晚来风
发布时间:2026-10-16| 6人浏览过
原创

本文详细解析Python中星号*的多种用法,包括数值乘法、序列倍增、幂运算以及函数参数处理。重点介绍单星号*用于位置参数解压和不定数量位置参数,双星号**用于关键字参数解压和不定数量关键字参数,帮助开发者深入理解Python语法细节。

铃铃铃…… 上课了

老师在黑板写着这么一个标题 《Python: 你所不知道的星号 * 用法》

同学A:
    呃,星号不就是用来做乘法的嘛,这个还有必要专门列出来吗?

同学B:
    老师这会又在卖关子了?

同学C忍不住嗦地一声站起来喊:
    难道写代码还得强行找理由秀一波星星吗?

老师:
    这位同学,你太优秀了,先坐下。
    平常对于星号的应用场景用得少是不需要了解太多用法的。
    不过,学编程的过程少不了要去阅读优秀的源代码库,
    也就时常会对星号 * 的贸然出现和用途感到困惑,
    所以今天就让你们好好了解一下会有哪些用法,
    不要求全记住,略懂一二即可,略懂。。。

本文旨在总结Python中星号*的常见与进阶用法。若内容存在不足,欢迎在评论区交流指正。

数值乘法

这是星号最基础的用法,用于两个数值之间的乘法运算。

示例如下:

mul = 1 * 2
print(mul)

输出结果:

2

成员倍增器

当星号左侧的操作数为序列(如列表、元组、字符串等),右侧为整数n时,该操作会对序列成员进行倍增,使列表中的元素数量变为原来的n倍。

示例如下:

list = ['hello'] * 2
print(list)

输出结果:

['hello', 'hello']

幂运算

双星号**用于执行幂运算,即计算左侧操作数的右侧操作数次方。

示例如下:

print(10 ** 3)

输出结果:

1000

函数参数解压操作符

在打印数据时,若需输出原始数据并在元素间插入分隔符,通常需使用循环处理,但这会使代码显得冗长。

示例如下:

print(' '.join(['sunday', 'monday', 'tuesday', 'wednesday']))
print(' '.join('helloworld!'))

输出结果:

sunday monday tuesday wednesday
h e l l o w o r l d !

此处介绍一种更简洁的方法,即利用星号进行解压处理。

在调用函数时,若在输入参数前添加星号*,可对参数执行解压操作。例如,对列表、元组或字符串等序列类型的输入参数进行解压后,其元素将作为独立的单个数据传入。

示例如下:

print(*'list')

输出结果:

l i s t

示例如下:

print(*['hello', 'world', '!'])

输出结果:

hello world !

函数参数修饰符

  • 在函数定义中,参数前添加星号*,表示该参数接收不定数量的位置参数。

当向函数传入不定数量的位置参数时,可使用星号修饰符。在函数内部,这些参数被存储为元组类型,即所有传入的不定参数均包含在该元组中。

示例如下:

def add(*args):
    return sum(args)

print(add(1, 2, 3, 4, 5))

输出结果:

15
  • 在函数定义中,参数前添加双星号**,表示该参数接收不定数量的关键字参数。

向函数传入的不定数量参数除位置参数外,也可包含关键字参数。此时需使用双星号**作为修饰符,例如**kwargs。

在函数内部,这些不定数量参数存储为字典类型,即所有传入的不定关键字参数均包含在该字典中。

示例如下:

def food_type(**kwargs):
    for item in kwargs:
        print(f"{kwargs[item]} belongs to {item}")

food_type(fruit = 'apple', meat = 'animal', vegetable = 'potato')

输出结果:

apple belongs to fruit
animal belongs to meat
potato belongs to vegetable

以上为星号用法的简要介绍。若仍有疑问,欢迎留言讨论,我将根据反馈进行修正。

至此,关于Python中星号*用法的介绍已结束。如需了解更多相关内容,可搜索本站历史文章或继续阅读后续文章。感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。