打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python3中*和**运算符有什么区别?

  在学习python过程中,大家对*和**这两个运算符应该都不陌生,是两个比较常见的算术运算符。那么你知道Python3中*和**运算符的用法是什么吗?以下是详细的内容介绍。

  在python中,*和**具有语法多义性,具体来说是有四类用法。

  1、算数运算

  * 代表乘法

  ** 代表乘方

  >>>2 * 5

  //10

  >>>2 ** 5

  //32

  2、函数形参

  *args和**kwargs主要用于函数定义。

  你可以将不定数量的参数传递给一个函数。不定的意思是:预先并不知道,函数使用者会传递多少个参数给你,所以在这个场景下使用这两个关键字。其实并不是必须写成*args和**kwargs。*才是必须的,你也可以写成*ar和**K。而写成*args和**kwargs只是一个通俗的命名约定。

  python函数传递参数的方式有两种:

  位置参数(positional argument)

  关键词参数(keyword argument)

  *args与**kwargs的区别,两者都是python中的可变参数:

  *args表示任何多个无名参数,它本质是一个tuple。

  **kwargs表示关键字参数,它本质上市一个dict。

  如果同时使用*args和**kwargs时,必须*args参数列要在**kwargs之前。

  def pt(*args,**kwargs)

  print('a:',args, 'k:',kwargs)

  pt(5,10, 'args='6, 'kwargs='9)

  a:(5,10),k:{'args='6, 'kwargs='9}

  3、函数实参

  它们两个除了用作算数之外还有一个形式就是用作函数的实参,格式为*args和**kwargs。其中*args是一个元组类型,代表多个匿名参数;**kwargs是一个字典类型,代表关键词参数,示例如下:

  def pt(info,info1)

  print('info:',info)

  print('info1:',info1)

  args = (5,10) # 解引用

  pt(*args) # 参数传递

  info:5,info1:10

  kwargs={'info1:'10, 'info:'5}

  pt(**kwargs)

  info:10,info1:5

  4、序列解包

  序列解包只需要用到*,序列解包没有**。

  x,*y=5,10,15

  x=5

  y=[10,15]

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python3中很多变量会在前面加个*号,不知道原因敢说学过Python?
python中的组包与解包
【必看】Python函数的精髓,你真的懂了吗?
Python函数的参数是如何工作的?
Python中的*args和**kwargs
详解Python中 须知:*args 和 **kwargs 的区别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服