gpt4 book ai didi

python - 为什么我会收到 "no ordering relation defined for complex numbers"错误?

转载 作者:太空狗 更新时间:2023-10-30 01:51:40 24 4
gpt4 key购买 nike

参见 this question一些背景。我在那个问题上的主要问题已经解决了,有人建议我问另一个问题来解决我遇到的第二个问题:

print cubic(1, 2, 3, 4)  # Correct solution: about -1.65
...
if x > 0:
TypeError: no ordering relation is defined for complex numbers
print cubic(1, -3, -3, -1) # Correct solution: about 3.8473
if x > 0:
TypeError: no ordering relation is defined for complex numbers

具有一个实根和两个复根的三次方程收到一个错误,即使我正在使用 cmath 模块并定义了立方根函数来处理复数。这是为什么?

最佳答案

Python 的错误消息非常好,就像这些事情一样:与我提到的某些语言不同,它们不像随机的字母集合。所以当 Python 提示比较时

if x > 0:

那个

TypeError: no ordering relation is defined for complex numbers

您应该按字面意思理解:您正在尝试比较一个复数 x 以查看它是否大于零,而 Python 不知道如何对复数排序。是 2j > 0 吗? -2j > 0吗?等等。面对歧义,拒绝猜测。

现在,在您的特定情况下,您已经确定是否 x.imag != 0,所以您知道 x.imag == 0当您测试 x 时,您可以简单地使用实部,IIUC:

>>> x = 3+0j
>>> type(x)
<type 'complex'>
>>> x > 0
Traceback (most recent call last):
File "<ipython-input-9-36cf1355a74b>", line 1, in <module>
x > 0
TypeError: no ordering relation is defined for complex numbers

>>> x.real > 0
True

关于python - 为什么我会收到 "no ordering relation defined for complex numbers"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16291902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com