返回顶部
首页 > 资讯 > 后端开发 > Python >Python中星号的使用方法有哪些
  • 405
分享到

Python中星号的使用方法有哪些

2023-07-05 06:07:38 405人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“python中星号的使用方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 引言星号* 往往被称为乘法运算符,是所

本篇内容介绍了“python中星号的使用方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1. 引言

星号* 往往被称为乘法运算符,是所有程序中最为常用的运算符号之一,在Python 中,星号还有很多隐藏的强大功能。
本文将用最容易理解的例子来解释星号*的 五个使用场景,从初级用法到高阶用法。

2. 乘法和幂运算符

最简单的用法是利用星号作为基本的运算符:

  • 单个 * 用于乘法运算

  • 两个 ** 表示幂运算

相关样例用例代码如下:

>>> 2*3>>> 6>>> 2**3>>> 8

3. 函数接收数量不固定的入参

一般来说,函数往往接收固定数量的参数;但是如果我们需要更大的灵活性,比如当不确定将传递多少个参数时,此时将是星号* 发挥作用的时候。

def print_genius(*names):    print(type(names))    for n in names:        print(n)print_genius('Elon Mask', 'Du Fu ', 'Li Bai')# <class 'tuple'># Elon Mask# Du Fu # Li Baidef top_genius(**names):    print(type(names))    for k, v in names.items():        print(k, v)top_genius(Top1="Elon Mask", Top2="Du Fu", Top3="Li Bai")# <class 'dict'># Top1 Elon Mask# Top2 Du Fu# Top3 Li Bai

如上例所示,在定义函数时,我们可以定义一个以一个或两个星号为前缀的参数,以捕获不限制数量的参数输入。总结如下:

  • 以 一个 * 为前缀的参数可以将任意数量的参数以元组形式传入

  • 以两个 ** 为前缀的参数可以将任意数量的参数以字典形式传入

按照惯例,当我们定义的函数接收不定数量的参数时,我们一般采用以下函数定义形式:

def func(*args, **kwargs):    pass

4. 限制函数入参仅以关键字形式输入

星号* 的一个非常酷的用法是使函数只能接收关键字参数。
很难理解,我们举例来说明:

def genius(*, first_name, last_name):    print(first_name, last_name)# genius('Li','Bai')# TypeError: genius() takes 0 positional arguments but 2 were givengenius(first_name='Li', last_name='Bai')# Li Bai

上述代码采用了星号* 限制了星号之后的参数必须采用关键字形式来调用上述函数。
实际上,如果我们只是想将一些参数限制为仅以关键字形式输入同时另一部分参数依旧按照位置形式输入,此时我们可以将位置参数放置在星号之前。
样例代码如下:

def genius(age, *, first_name, last_name):    print(first_name, last_name, 'is', age)genius(28, first_name='Li', last_name='Bai')# Li Bai is 28

5. 可迭代对象解包操作

我们可以使用星号* 来解包可迭代对象,这将使我们的程序更加清晰且优雅。
例如,如果我们要将不同的可迭代对象(例如一个列表,一个元组和一个集合)组合成一个新列表,哪种方法最好?
显然,我们可以使用 for 循环来迭代所有元素并将它们逐一添加到新列表中,样例代码如下:

A = [1, 2, 3]B = (4, 5, 6)C = {7, 8, 9}L = []for a in A:    L.append(a)for b in B:    L.append(b)for c in C:    L.append(c)print(L)# [1, 2, 3, 4, 5, 6, 8, 9, 7]

上述实现方式虽然可以完成我们的目的,但是代码看起来太冗长了,而且不是很Pythonic 。
推荐的改进方式是使用列表生成式,如下所示:

A = [1, 2, 3]B = (4, 5, 6)C = {7, 8, 9}L = [a for a in A] + [b for b in B] + [c for c in C]print(L)# [1, 2, 3, 4, 5, 6, 8, 9, 7]

上述代码中,我们将三个 for 循环减少为一行列表生成式。它已经是Pythonic了,但不一定是最简单的!
是时候看看星号的强大之处啦。

A = [1, 2, 3]B = (4, 5, 6)C = {7, 8, 9}L = [*A, *B, *C]print(L)# [1, 2, 3, 4, 5, 6, 8, 9, 7]

如上所述,我们可以使用星号作为可迭代项的前缀来解包它们的元素。
顺便说一句,如果我们利用一个*作为dict 的前缀,它的key 将被解包;如果我们使用双星号** 作为前缀,其value 将被解包;此时我们必须显示使用key 来接收解包后的value 。
样例如下:

D = {'first': 1, 'second': 2, 'third': 3}print(*D)# first second third# print(**D)# TypeError: 'first' is an invalid keyWord argument for print()print('{first},{second},{third}'.fORMat(**D))# 1,2,3

6. 扩展可迭代对象解包

解包的语法可以让我们的代码更加简洁,样例如下:

L = [1, 2, 3, 4, 5, 6, 7, 8]a, *b = Lprint(a)# 1print(b)# [2, 3, 4, 5, 6, 7, 8]

“Python中星号的使用方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Python中星号的使用方法有哪些

本文链接: https://lsjlt.com/news/350236.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中星号的使用方法有哪些
    本篇内容介绍了“Python中星号的使用方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 引言星号* 往往被称为乘法运算符,是所...
    99+
    2023-07-05
  • Python中Series有哪些使用方法
    本篇文章为大家展示了Python中Series有哪些使用方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、方法说明(1)排序sort_values()通过ascending参数来确定升序还是降序...
    99+
    2023-06-15
  • python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别有哪些
    这篇文章主要介绍python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!为了区分三种乘法运算的规则,具体分析如下:import&nb...
    99+
    2023-06-14
  • Python中星号的五种用法小结
    目录1. 引言2. 乘法和幂运算符3. 函数接收数量不固定的入参4. 限制函数入参仅以关键字形式输入5. 可迭代对象解包操作6. 扩展可迭代对象解包7. 结论1. 引言 星号* 往往...
    99+
    2023-02-28
    Python 星号
  • Python unittest有哪些使用方法
    小编给大家分享一下Python unittest有哪些使用方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.pillow;4.tw...
    99+
    2023-06-14
  • Python队列的使用方法有哪些
    python中使用到的队列模块大致有三个:1、from queue import Queue此模块适用于线程间通信,但不能用于进程间通信。示例代码1: 【注意:此时代码存在错误!!!】import time import threading...
    99+
    2023-05-14
    Python
  • Python变量的使用方法有哪些
    本篇内容介绍了“Python变量的使用方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!创建变量变量是存放数据值的容器。与其他编程语言...
    99+
    2023-07-05
  • 批处理中delims=和tokens=星号的区别有哪些
    这篇文章主要介绍批处理中delims=和tokens=星号的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!比较以下两段代码的执行结果差异: 1、 @echo off for /f "delims=...
    99+
    2023-06-09
  • Python中的魔法方法有哪些
    Python中的魔法方法:1.__del__方法常用于明确销毁某个对象;2.__init__()方法常用于初始化实例对象;3.__new__()方法可以定义一个对象的初始化操作;Python中的魔法方法有以下几种__del__方法__del...
    99+
    2024-04-02
  • Python装饰器的使用方法有哪些
    这篇文章主要介绍了Python装饰器的使用方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python装饰器的使用方法有哪些文章都会有所收获,下面我们一起来看看吧。装饰器的价值不言而喻,可以用来增强函数...
    99+
    2023-07-02
  • Python类的基本使用方法有哪些
    1、面向对象类(class):是一种用来描述具有相同属性和方法的对象的集合。类变量:类变量在整个实例化的对象中是公用的。一般定义在类中且在函数体之外。方法:类中的函数数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。方法重写:...
    99+
    2023-05-18
    Python
  • Python字符串的使用方法有哪些
    这篇文章主要讲解了“Python字符串的使用方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python字符串的使用方法有哪些”吧!str(字符串)1.字符串是 Python 中最常...
    99+
    2023-06-02
  • Python中使用NumPy库的方法和技巧有哪些?
    NumPy是Python中用于科学计算的一个重要的库,它提供了大量的数组和矩阵运算函数,使得Python在科学计算领域变得更加强大和灵活。本文将介绍一些使用NumPy库的方法和技巧,帮助读者更好地掌握NumPy。 创建数组 创建数组是...
    99+
    2023-09-11
    numpy bash 数组
  • Python中plt.scatter()函数的常见使用方法有哪些
    plt.scatter()函数用法一.scatter()函数的定义matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin...
    99+
    2023-05-14
    Python
  • python中星号变量的几种特殊用法
    一、什么是星号变量 最初,星号变量是用在函数的参数传递上的,在下面的实例中,单个星号代表这个位置接收任意多个非关键字参数,在函数的*b位置上将其转化成元组,而双星号代表这个位置接收任意多个关键字参数,在*...
    99+
    2022-06-04
    星号 几种 变量
  • HTML5中Canvas的使用方法有哪些
    这篇文章主要介绍了HTML5中Canvas的使用方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   moveTo(x,y) 定义...
    99+
    2024-04-02
  • java中velocity的使用方法有哪些
    在Java中使用Velocity模板引擎有以下几种方法:1. 使用Velocity的原始API:通过创建Velocity引擎实例,加...
    99+
    2023-09-16
    java velocity
  • C#中Volatile的使用方法有哪些
    本篇内容介绍了“C#中Volatile的使用方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.Overview经常研究.NET源码...
    99+
    2023-06-25
  • Linux中FirewallD的使用方法有哪些
    本篇内容介绍了“Linux中FirewallD的使用方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!centos 7中防火墙Fire...
    99+
    2023-06-27
  • c#中gdi的使用方法有哪些
    在C#中,GDI(Graphics Device Interface)用于处理图形和图像的绘制和操作。以下是一些常见的使用方法:1....
    99+
    2023-08-21
    c#
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作