鱼C论坛

 找回密码
 立即注册
查看: 2751|回复: 4

[已解决]这个*是什么意思?

[复制链接]
发表于 2017-8-11 21:08:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
print("Months = {} Days = {}".format(*divmod(days, 30)))

divmod(num1, num2) 返回一个元组,这个元组包含两个值,第一个是 num1 和 num2 相整除得到的值,第二个是 num1 和 num2 求余得到的值,然
后我们用 * 运算符拆封这个元组,得到这两个值。

这个*拆封元组到底是个什么意思,求解释
最佳答案
2017-8-11 21:18:56
举个实例说明吧。
  1. >>> def fun(a, b): #先定义个函数,需要2个参数
  2.         print(a * b)

  3.        
  4. >>> c = (10, 20)#赋值一个元组
  5. >>> fun(c)#直接将c作为参数,是会出错的
  6. Traceback (most recent call last):
  7.   File "<pyshell#111>", line 1, in <module>
  8.     fun(c)
  9. TypeError: fun() missing 1 required positional argument: 'b'
  10. >>> fun(*c)#加上*就可以了,实际上就是把c这个元组拆成10和20两个元素
  11. 200
  12. >>> fun(10, 20)#相当于这样
  13. 200
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-8-11 21:18:56 | 显示全部楼层    本楼为最佳答案   
举个实例说明吧。
  1. >>> def fun(a, b): #先定义个函数,需要2个参数
  2.         print(a * b)

  3.        
  4. >>> c = (10, 20)#赋值一个元组
  5. >>> fun(c)#直接将c作为参数,是会出错的
  6. Traceback (most recent call last):
  7.   File "<pyshell#111>", line 1, in <module>
  8.     fun(c)
  9. TypeError: fun() missing 1 required positional argument: 'b'
  10. >>> fun(*c)#加上*就可以了,实际上就是把c这个元组拆成10和20两个元素
  11. 200
  12. >>> fun(10, 20)#相当于这样
  13. 200
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
wyb407 + 5 + 5

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

发表于 2017-8-11 21:42:48 | 显示全部楼层
带了* 的变量,说明它是一个可迭代的序列
  1. >>> print("Months = {} Days = {}".format(*divmod(12, 30)))
  2. Months = 0 Days = 12
  3. >>> a = [1,2]
  4. >>> print("Months = {} Days = {}".format(*a))
  5. Months = 1 Days = 2
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2017-8-11 22:12:07 | 显示全部楼层

谢谢!经您这么一解释我就明白了,这个是叫收集参数吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-11 22:16:00 | 显示全部楼层
tang136 发表于 2017-8-11 22:12
谢谢!经您这么一解释我就明白了,这个是叫收集参数吗?

不是收集参数,有点收集参数像反过来的。
收集参数是将多个参数作为一个参数传入函数。而*则是将一个可迭代的对象(列表、元组、字符串等)打开成多个元素,作为函数的多个参数传入。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-1 11:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表