>> 3*7 21 >>>..." />

Python中.*和.*?的区别

概要等式运算函数中参数的定义与调用定义函数时*的作用:out定义函数时:**OUTOUT调用函数时,和*均是为了分配参数用的调用函数时:*:调用函数时:**:概要 关于""和"*"两个特殊符号的区别,首先在python中是没有指针的,与C++有很大的不同。等式运算 python中常用的乘法运算符 >>> 3*7 21 >>>...
Python中.*和.*?的区别
概要等式运算函数中参数的定义与调用定义函数时*的作用:out定义函数时:**OUTOUT调用函数时,和*均是为了分配参数用的调用函数时:*:调用函数时:**:

概要
关于""和"*"两个特殊符号的区别,首先在python中是没有指针的,与C++有很大的不同。
等式运算
python中常用的乘法运算符*
>>> 3*7
21
>>> l=[2 * i for i in range(100) ]
>>> l
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102,
104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198]

函数中参数的定义与调用
如果在定义函数时,代表收集参数,*代表收集关键字参数。
定义函数时*的作用:
def symbols(*params):
print(params)

out
symbols(1,2,3)
(1,2,3)

此时*是将调用时提供的所有值,放在一个元组里。
这种情况下,在函数定义时的形参里的*params后面,就最好不要再加入别的形参了,比如你定义成 def symbols(*params,x) ,调用的时候symbols(1,2,3),就会报错。因为这样python分不清哪个数据是给params的。如果你非要这么定义也行,不过在调用的时候,必须显示的指出哪个值是给x的。比如symbols(1,2,x=3),通过这种方式调用才不会出错。
定义函数时:**
对于之前参数是*params的情况,symbols并不能传入关键字参数。仍然采取这种方式定义时:会报错
def symbols1(*params):
print(params)

OUT
>>>symbols1(x=1,y=2,z=3)

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: symbols1() got an unexpected keyword argument 'x'

报错
因为*号并不会收集关键字参数。所以需要如下方式修改,采用两个星号:
def symbols2(**params):
print(params)

这样调用symbols2就不会有问题:
OUT
>>> symbols2(x=1,y=2,z=3)

{'z'=3,'x'=1,'y'=2}

以上输出得到一个字典。字典中元素的先后顺序取决于你的环境。
调用函数时,和*均是为了分配参数用的
调用函数时:*:
例如,还是刚刚那个print函数
def symbols(x,y):
print(x)
print(y)

两个形参,如果只想传入一个形参呢
对,“调用函数时分配参数”跟“定义函数时收集参数”,反过来了!
假设你还有一个元组:
params=(1,2)

可以通过如下方式调用symbols函数:
>>> symbols(*params)
就可以输出:

1
2

调用函数时:**:
和上面*时一样,只是分配的是字典。
params={'x':1,'y':2}

可以通过如下方式调用symbols函数:
>>> symbols(**params)
就可以输出:

1
22021-12-07
=是赋值符号——代表将符号右边的值赋给左边的变量。例如:a=10,代表将整型数10赋值给a。==是判断...2021-12-07
mengvlog 阅读 10 次 更新于 2025-07-18 21:16:29 我来答关注问题0
  •  程序员中的理科生 pycharm在运行结果区输入乘法?

    PyCharm 是一个适用于 Python 的集成开发环境 (IDE),它提供了用于编写、运行和调试 Python 代码的工具。在 PyCharm 中,您可以在窗口底部的控制台区域中输入 Python 命令来运行它们并查看它们的输出。要在 PyCharm 控制台中输入乘法运算,您可以使用在 Python 中用于乘法的运算符。下面是如何在 PyC...

  •  文暄生活科普 Python中encode和encoding的区别是什么?

    总结一下,`encode()`和`encoding`的主要区别在于应用领域:`encode()`用于字符串转换,通常在构建网络请求或处理特定编码需求时使用;而`encoding`用于文件操作,确保文件正确读取和写入。理解这两个概念有助于更高效地使用Python进行数据处理和网络编程。本文对Python中的encode和encoding进行了简明的说明,...

  •  是鹅子吖 python中//和%的区别?

    python中//和%的区别如下:1、//表示向下取整的除法,返回的是整数类型,例如3//2=1,6.0//4 = 1。2、%表示取模,返回的是整数类型,例如4%2=0,5%2=1。python语言的重要性 Python语言以其简洁、直观的语法而闻名。相比其他编程语言,Python的语法更加简单易懂,容易上手。这使得初学者能够...

  •  翡希信息咨询 如何在PyCharm中设置断点?

    打开代码文件:首先,在PyCharm中打开你需要设置断点的Python代码文件。点击行号设置断点:在代码编辑区的左侧,有一个显示行号的区域。找到你想要设置断点的那一行,点击行号旁边的空白区域(通常是一个可以点击的小灰色圆点或空白区域)。点击后,会出现一个红色的圆点,这表示断点已经成功设置。运行代码(D...

  •  校易搜全知道 PyCharm区别专业版和社区版?

    PyCharm是一款受欢迎的Python集成开发环境,分为专业版和社区版两个版本。两者在功能和适用范围上存在一定差异。一、功能差异 1. 专业版:PyCharm专业版提供了全面的Python开发功能,包括代码调试、科学工具、专业Web开发支持、Python Web框架、Python分析器、远程开发等。此外,还提供了大量插件和工具,支持...

檬味博客在线解答立即免费咨询

Python相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部