Python中的*与**运算符有什么区别?
参考:大佬的链接
在学习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中的*与**运算符有什么区别?相关推荐
- Python中爬虫框架或模块的区别
Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...
- python中的成员运算符用于判断什么_Python之运算符
原标题:Python之运算符 这章我们介绍如何用Python的运算符,大家不懂的地方可以加群:579817333咨询学习 Python运算符包括赋值运算符.算术运算符.关系运算符.逻辑运算符.位运算符 ...
- Python中值传递和引用传递区别
原文:http://blog.csdn.net/xuqiaobo/article/details/72236539 举例,函数参数如果是dic,都不需要返回值,原值就被改变了 def aa(dic): ...
- Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...
Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...
- python中列表 元组 字典 集合的区别
参考文章:python中列表 元组 字典 集合的区别
- Python中爬虫框架或模块的区别!
Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...
- 【Python】Python中str()和repr()函数的区别
作用 在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str() 或者 repr() . 区别与使用 参考文章:Python 中 str() 和 repr() 函数的 ...
- python中的return和print的区别_python中return和print的区别(详细)
Huskiesir python最近正在研究.今天,我面临一个问题,那就是,返回和印刷的区别.双方都能输出结果.的区别是什么?闲话少说,看下面的例子.# Code1: def break_words( ...
- python中dtype什么意思_浅谈python 中的 type(), dtype(), astype()的区别
如下所示: 函数 说明 type() 返回数据结构类型(list.dict.numpy.ndarray 等) dtype() 返回数据元素的数据类型(int.float等) 备注:1)由于 list. ...
最新文章
- 汇编程序设计与计算机体系结构软件工程师教程笔记:处理器、寄存器简介
- 16-flutter-Swiper 插件的使用
- 剑指 Offer 59 - I. 滑动窗口的最大值
- Java StringBuffer与StringBuider
- springboot整合filter
- 投上您宝贵的一票,谢谢啦!!
- 如何删除mysql软链接,Linux中移除(删除)符号链接的命令
- hpm1216nfh驱动程序_惠普M1216nfh驱动下载
- Atiitt 软件设计之道 attilax著 1. 总概念 隶属于软件工程。。	2 2. 需求分析	3 3. 设计分类	3 3.1. 按照力度 总体设计架构设计 概要设计 详细设计	3 3.2.
- 海康rtsp视频流媒体服务器搭建(去除flash插件):rtsp > nginx-rtmp > http-flv > flv.js
- git局域网内搭建服务器
- boren -飞机大战6
- Android CameraX适配Android11的踩坑之路
- 分门别类刷leetcode——链表 1
- matlab 导出图片坐标_Matlab绘图---坐标系显示设置
- 三位数分解百位,十位,个位
- python数学圆周率_Python编程超简单方法算圆周率
- picpick尺子像素大小精度不够准确_如何使用像素标尺在PicPick
- netfilter_queue
- 图像紫边消除(depurple)