gpt4 book ai didi

Python:值 > 值在显然不是时返回 true

转载 作者:行者123 更新时间:2023-11-28 21:11:35 24 4
gpt4 key购买 nike

我在使用模块时一直出现错误,所以我转到了引发异常的行,这里是:

elif value > max(self._intervals):
raise Exception("\nERROR: Value Is Greater Than Maximum Element In Points List")
return

这一切都发生在一个大循环中,所以我想找出是哪个变量迭代导致了它。事实证明,14 次迭代中有 9 次导致了错误。所以我将代码调整为:

elif value > max(self._intervals):
print value
print self._intervals
print max(self._intervals)
print value > max(self._intervals)
raise Exception("\nERROR: Value Is Greater Than Maximum Element In Points List")
return

我得到这样的结果:

33
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100]
100
True

因此,值为 33,然后我打印列表,然后像代码一样打印该列表的最大值。显然,33 不是 > 100,所以我测试的最后一行,但它返回它是?这怎么可能?我正在失去对现实的把握,试图找出原因。这可能是我看不到的过于明显的东西。

最佳答案

您很可能将 value 设为字符串 '33' 而不是 int 33

例如:

>>> '33' > 100
True

这样做的原因是当比较两个不同类型的非数字对象(int 和 string)时,比较是通过比较类型的名称来执行的。由于 'int' < 'string',任何 int 都小于任何 string。在 python3 中不再是这种情况。

关于Python:值 > 值在显然不是时返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35123134/

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