python中你不知道的*号用法总结

 更新时间:2025年11月25日 09:34:46   作者:软件测试杂谈  
Python 中的星号(*)是一个功能强大的符号,它远不止简单的乘法运算符,本文将深入探讨*符号在Python中的各种用法,力求覆盖你可能不知道的细节和技巧,需要的可以了解下

Python 中的星号(*)是一个功能强大的符号,它远不止简单的乘法运算符。它在多种上下文中扮演着不同的角色,理解其多样的用法对于编写高效、优雅的 Python 代码至关重要。本文将深入探讨*符号在Python中的各种用法,力求覆盖你可能不知道的细节和技巧。  许多 Python 初学者只了解其在算术运算中的作用,而忽略了它在参数传递、解包、迭代器等方面的强大功能。本文将通过大量的代码示例,帮助你全面掌握*符号的精髓。

常见用法

让我们从最常见的用法开始,逐步深入到一些比较高级的应用场景。

1. 算术运算符

这是*最基本的用法,用于执行乘法运算。这部分相信大家都很熟悉,这里就不展开赘述了。

a = 5
b = 10
result = a * b  # result = 50
print(result)

2. 参数传递中的*args

在函数定义中,*args允许你传递任意数量的位置参数。这些参数会被打包成一个元组。这在处理参数数量不确定或需要灵活处理参数的场景下非常有用。

def my_sum(*args):
    total = 0
    for num in args:
        total += num
    return total

print(my_sum(1, 2, 3))  # Output: 6
print(my_sum(10, 20, 30, 40, 50))  # Output: 150

*args 的名称并非强制规定,你可以使用其他的名称,例如 *numbers*values 等,关键在于星号 *

3. 参数传递中的kwargs

*args类似,**kwargs允许你传递任意数量的关键字参数。这些参数会被打包成一个字典。这在需要处理命名参数的场景下非常有用。

def print_kwargs(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_kwargs(name="Alice", age=30, city="New York")
# Output:
# name: Alice
# age: 30
# city: New York

同样,**kwargs 的名称也不是强制的,你可以使用其他名称,例如 **params**options 等,关键在于双星号 **

4. 解包序列

* 可以用于解包序列(例如列表、元组)并将元素传递给函数或其他结构。

my_list = [1, 2, 3]
print(*my_list)  # Output: 1 2 3

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

my_func(*my_list) # Output: 1 2 3

这在处理多个变量时非常方便,避免了冗长的代码。

5. 解包字典

** 可以用于解包字典,并将键值对传递给函数或其他结构。

my_dict = {"a": 1, "b": 2, "c": 3}
print(**my_dict) # This will raise a SyntaxError.  You need to use it within a function call or similar.

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

my_func2(**my_dict) # Output: 1 2 3

6.  矩阵乘法 (NumPy)

在NumPy中,* 用于进行元素级的矩阵乘法,而不是矩阵乘法。  要进行矩阵乘法,需要使用 @ 运算符 (Python 3.5+) 或 numpy.dot() 函数。

import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

print(a * b)  # Element-wise multiplication: [[ 5 12], [21 32]]
print(a @ b)  # Matrix multiplication: [[19 22], [43 50]]
print(np.dot(a, b)) # Matrix multiplication: [[19 22], [43 50]]

7.  文件路径操作

在处理文件路径时,* 可以用作通配符,匹配任意数量的字符。

8.  正则表达式

在正则表达式中,* 表示匹配零个或多个前面的字符。

总结

本文详细介绍了 Python 中*符号的多种用法,从基本的算术运算到高级的参数传递和解包操作。  熟练掌握这些用法,能够显著提高你的 Python 编程效率,编写出更简洁、更易读的代码。  记住,* 和 ** 的力量在于它们处理可变数量参数和解包序列的能力,这在构建灵活且可重用的函数和代码结构中至关重要。

到此这篇关于python中你不知道的*号用法总结的文章就介绍到这了,更多相关python *号用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python密码学黑客攻击RSA密码

    python密码学黑客攻击RSA密码

    这篇文章主要为大家介绍了python密码学黑客攻击RSA密码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • python实现定时发送邮件

    python实现定时发送邮件

    这篇文章主要为大家详细介绍了python实现定时发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • Python人工智能深度学习CNN

    Python人工智能深度学习CNN

    这篇文章主要为大家介绍了Python人工智能深度学习CNN的教程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-11-11
  • 详解Python中常用的图片处理函数的使用

    详解Python中常用的图片处理函数的使用

    这篇文章主要为大家介绍了一些在Python中常用的图片处理函数的使用,例如split()、merge()、threshold()、applyColorMap()等,需要的可以参考一下
    2022-01-01
  • python reduce 函数使用详解

    python reduce 函数使用详解

    reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,今天我们就来详细探讨下
    2017-12-12
  • Python之tkinter文字区域Text使用及说明

    Python之tkinter文字区域Text使用及说明

    这篇文章主要介绍了Python之tkinter文字区域Text使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Python实现屏幕代码雨效果的示例代码

    Python实现屏幕代码雨效果的示例代码

    这篇文章主要介绍了如何利用Python中的Pygame模块实现代码雨效果,文中通过示例代码介绍的非常详细,感兴趣的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • PyCharm文件模板配置的完整指南

    PyCharm文件模板配置的完整指南

    这篇文章主要介绍了PyCharm文件模板配置的全流程,涵盖模板创建、变量使用(如日期、用户名)、LiveTemplates设置、团队共享及最佳实践,通过统一代码结构提升开发效率,需要的朋友可以参考下
    2025-07-07
  • PyTorch在Windows环境搭建的方法步骤

    PyTorch在Windows环境搭建的方法步骤

    这篇文章主要介绍了PyTorch在Windows环境搭建的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 基于Python实现的微信好友数据分析

    基于Python实现的微信好友数据分析

    这篇文章主要介绍了基于Python实现的微信好友数据分析的相关知识,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-02-02

最新评论