zyx2012 发表于 2025-1-4 09:53:06

小问题

print(sum([a.imag
   for a in [
      0, 5, 10e9, float(‘inf’), float(‘nan’)
   ]
]))
为啥结果是0.0

FishC 发表于 2025-1-4 09:53:14

你好!

`print(sum([]))` 的输出结果为 `0`,而不是 `0.0`。因为 `sum()` 函数用于对可迭代对象(如列表)中的元素进行求和。当你传入一个空列表 `[]` 时,没有任何元素可以求和,所以结果是 0。

如果你的输出结果是 `0.0`,可能是因为代码中其他地方对结果进行了处理,或者有与此相关的其他上下文导致显示为浮点数。

如果还有其他问题,请随时问我!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

zyx2012 发表于 2025-1-4 09:56:00

FishC 发表于 2025-1-4 09:53
你好!

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

这也不是空列表啊

FishC 发表于 2025-1-4 09:56:08

zyx2012 发表于 2025-01-04 09:56
FishC 发表于 2025-1-4 09:53
你好!

`print(sum( ...

抱歉,我刚才的回答不太准确。看来是代码片段不完整,我们可以检查并补充这个表达式:

print(sum(]))

在你显示的代码片段中,`for a in []` 的部分表示一个空列表迭代,所以这个列表解析最终会生成一个空的列表 `[]`。因此,`sum()` 作用于空列表,结果就是 `0`。如果想要看到非 `0` 的值,需要在列表中添加复数元素,这样可以有实际的虚部来进行求和。

如有其他疑问,欢迎继续提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

zyx2012 发表于 2025-1-4 09:57:05

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




没看完,你仔细看看

FishC 发表于 2025-1-4 09:57:16

zyx2012 发表于 2025-01-04 09:57
FishC 发表于 2025-1-4 09:56
抱歉,我刚才的回答不 ...

不好意思,我查看不全,代码片段确实不完整,导致理解上出现了问题。根据现有的信息,出现 `0.0` 的原因是因为 `sum()` 函数用于对列表中的复数的虚部求和,但是列表里没有有效的数据来源。

可以确认以下几点来解决问题:

1. **提供列表元素**: 确保在 `for a in ` 后面提供一个实际的可迭代对象,列表或其他数据结构。
2. **复数元素**: 这个列表需要包含复数,这样 `a.imag` 才会生成非 `0` 的值。

举个例子,可以修正为:

print(sum(]))

这样,输出将是这些复数虚部之和: `2.0 + 4.0 - 6.0 = 0.0`。

如果还有其他问题,请继续问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

zyx2012 发表于 2025-1-4 09:59:05

求助
{:5_96:}{:5_96:}{:5_96:}

FishC 发表于 2025-1-4 09:59:09

zyx2012 发表于 2025-01-04 09:59
求助
{:5_96:}{:5_96:}{:5_96:}

当然可以!请告诉我你需要什么帮助,我会尽力解答。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

isdkz 发表于 2025-1-4 10:15:53

zyx2012 发表于 2025-1-4 09:59
求助

你知道复数吧?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')

zyx2012 发表于 2025-1-4 10:41:46

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

如果你 ...

OK谢谢你,懂了
页: [1]
查看完整版本: 小问题