鱼C论坛

 找回密码
 立即注册
查看: 2420|回复: 9

[已解决]小问题

[复制链接]
发表于 2025-1-4 09:53:06 | 显示全部楼层 |阅读模式

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

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

x
print(sum([a.imag
   for a in [
      0, 5, 10e9, float(‘inf’), float(‘nan’)
   ]
]))
为啥结果是0.0
最佳答案
2025-1-4 10:15:53

你知道复数吧?imag是虚部,你上面给出的列表中的对象都没有虚部,所以相加的结果自然是 0 了

如果你想把实部加起来请用 real,但是因为你列表里面的对象都没有虚部,所以 a.real 等同于 a

print(sum([a.real
   for a in [
      0, 5, 10e9, float('inf'), float('nan')
   ]
]))


等同

print(sum([a
   for a in [
      0, 5, 10e9, float('inf'), float('nan')
   ]
]))


因为你列表里面的对象有一个not a number,所以无论跟什么相加,最终结果都是 not a number,即 float('nan')
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2025-1-4 09:56:00 | 显示全部楼层
FishC 发表于 2025-1-4 09:53
你好!

`print(sum([]))` 的输出结果为 `0`,而不是 `0.0`。因为 `sum()` 函数用于对可迭代对象(如列表 ...

这也不是空列表啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-4 09:57:05 | 显示全部楼层
FishC 发表于 2025-1-4 09:56
抱歉,我刚才的回答不太准确。看来是代码片段不完整,我们可以检查并补充这个表达式:

没看完,你仔细看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-4 09:59:05 | 显示全部楼层
求助
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2025-1-4 10:41:46 | 显示全部楼层
isdkz 发表于 2025-1-4 10:15
你知道复数吧?imag是虚部,你上面给出的列表中的对象都没有虚部,所以相加的结果自然是 0 了

如果你 ...

OK谢谢你,懂了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-1 19:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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