参考:大佬的链接
在学习python中遇到运用**调用dict(字典)的情况,
当时没懂dict与tuple(元组)的区别,自己测试直接调用函数或者是用*调用都不可实现,
于是查了许多大佬的解释,
得出下面关于***的区别。

1.算法运算

*表示乘号
**表示乘方

a=2*3
print(a)     run:   6
a=2**3
print(a)run:    8

2. *arg*kwargs 主要用于函数定义。

其中的两个关键字。其实并不是必须写成 *arg*kwargs* 才是必须的. 你也可以写成*a*k
而写成 *arg*kwargs 只是一种通俗命名约定。

2.1函数实参

真实传给函数的参数,叫实参。
实参可以是:常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们必须有确定的值,以便把这些值传送给形参。

当函数的形参是固定长度时候,可以用*arg或者是**kwargs调用函数,类似对元组和字典的解引用。

kwargs ={"data0":"abcd","data1":1,"data2":2}
fun(**kwargs)
def fun(data0,data1,data2):                           print(data0)                                      print(data1)                                      print(data2)                                      Run:   abcd12
args =("abcd",1,2)
fun(*arg)
def fun(data0,data1,data2):           print(data0)                      print(data1)                      print(data2)                      Run:   abcd12

2.2函数形参

形式参数是指函数名后括号中的变量。
因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。

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

*arg 表示任何且多个无名参数,它本质是一个 tuple(元组)

*kwargs 表示关键字参数,它本质上是一个 dict(字典)

def fun(*args, **kwargs):                        print('args=', args)                         print('kwargs=', kwargs)                     fun(1, 2, 3, 4, A='a', B='b', C='c', D='d')      Run :
args= (1, 2, 3, 4)https://blog.csdn.net/yilovexing/article/details/80576788
kwargs= {'A': 'a', 'B': 'b', 'C': 'c', 'D': 'd'}

3.序列解包(python3后才有的语法糖)

其中只有用到*,没有用到** 这有些跑题了
如果想进一步学习的
可以阅读另外一篇大佬文章
Python3 序列解包

ps:蹲家一时爽,一直蹲就不爽了。希望疫情快点过吧。

Python中的*与**运算符有什么区别?相关推荐

  1. Python中爬虫框架或模块的区别

    Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...

  2. python中的成员运算符用于判断什么_Python之运算符

    原标题:Python之运算符 这章我们介绍如何用Python的运算符,大家不懂的地方可以加群:579817333咨询学习 Python运算符包括赋值运算符.算术运算符.关系运算符.逻辑运算符.位运算符 ...

  3. Python中值传递和引用传递区别

    原文:http://blog.csdn.net/xuqiaobo/article/details/72236539 举例,函数参数如果是dic,都不需要返回值,原值就被改变了 def aa(dic): ...

  4. Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...

    Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...

  5. python中列表 元组 字典 集合的区别

    参考文章:python中列表 元组 字典 集合的区别

  6. Python中爬虫框架或模块的区别!

    Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...

  7. 【Python】Python中str()和repr()函数的区别

    作用 在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str() 或者 repr() . 区别与使用 参考文章:Python 中 str() 和 repr() 函数的 ...

  8. python中的return和print的区别_python中return和print的区别(详细)

    Huskiesir python最近正在研究.今天,我面临一个问题,那就是,返回和印刷的区别.双方都能输出结果.的区别是什么?闲话少说,看下面的例子.# Code1: def break_words( ...

  9. python中dtype什么意思_浅谈python 中的 type(), dtype(), astype()的区别

    如下所示: 函数 说明 type() 返回数据结构类型(list.dict.numpy.ndarray 等) dtype() 返回数据元素的数据类型(int.float等) 备注:1)由于 list. ...

最新文章

  1. 汇编程序设计与计算机体系结构软件工程师教程笔记:处理器、寄存器简介
  2. 16-flutter-Swiper 插件的使用
  3. 剑指 Offer 59 - I. 滑动窗口的最大值
  4. Java StringBuffer与StringBuider
  5. springboot整合filter
  6. 投上您宝贵的一票,谢谢啦!!
  7. 如何删除mysql软链接,Linux中移除(删除)符号链接的命令
  8. hpm1216nfh驱动程序_惠普M1216nfh驱动下载
  9. Atiitt 软件设计之道 attilax著 1. 总概念 隶属于软件工程。。 2 2. 需求分析 3 3. 设计分类 3 3.1. 按照力度 总体设计架构设计 概要设计 详细设计 3 3.2.
  10. 海康rtsp视频流媒体服务器搭建(去除flash插件):rtsp > nginx-rtmp > http-flv > flv.js
  11. git局域网内搭建服务器
  12. boren -飞机大战6
  13. Android CameraX适配Android11的踩坑之路
  14. 分门别类刷leetcode——链表 1
  15. matlab 导出图片坐标_Matlab绘图---坐标系显示设置
  16. 三位数分解百位,十位,个位
  17. python数学圆周率_Python编程超简单方法算圆周率
  18. picpick尺子像素大小精度不够准确_如何使用像素标尺在PicPick
  19. netfilter_queue
  20. 图像紫边消除(depurple)

热门文章

  1. 240Hz刷新率+RTX3070:华硕天选2游戏本强势开售
  2. hdu 2473 帮派
  3. cesium禁止进入地下
  4. 数值计算之 牛顿法与函数极值
  5. 计算机函数极值的求法,函数的极值及其求法
  6. 自得其乐读《论语》—1.02孝弟为本
  7. Linux中特殊符号的作用
  8. 使用Android API最佳实践
  9. 帮你寻找努力工作、学习、生活与不断前行的内在动机
  10. 编写一个 Java 应用程序,该程序中有 3 个类:Triangle、T rapezium 和 Circle,分别用来 表示三角形、梯形和圆形。