python - 为什么 (inf + 0j)*1 评估为 inf + nanj?
问题描述
>>> (float('inf')+0j)*1
(inf+nanj)
为什么?这在我的代码中造成了一个令人讨厌的错误。
为什么不是1
乘法恒等式,给(inf + 0j)
?
解决方案
将1
首先转换为复数1 + 0j
,然后再进行inf * 0
乘法运算,得到nan
。
(inf + 0j) * 1
(inf + 0j) * (1 + 0j)
inf * 1 + inf * 0j + 0j * 1 + 0j * 0j
# ^ this is where it comes from
inf + nan j + 0j - 0
inf + nan j
推荐阅读
- javascript - 如何在前端调用后端错误消息?
- r - 根据R中ggplot中的组为每个多边形着色
- superpower - Superpower:创建解析器以匹配“\r\n”或“\n”(更通用:匹配字符串文字)
- python - 如果熊猫数据框已经有两列,如何将它添加到另一个熊猫数据框?
- c - 我应该像介绍的那样使用 fflush 吗?有什么选择吗?
- python - 有人可以向我解释一下这一行:'\n'.join([f"{n} x {i} = {n*i}" for i in range(1,11)?
- python - 使用 xpaths 抓取 Amazon 表的特定部分时出错
- html - 小于 x 的数字的正则表达式?
- mysql - Keycloak 无法连接到我的 MySQL 数据库
- python-3.x - 我不知道为什么你需要在括号内添加加号和撇号,当它在 python 中的字符串函数内时