我遇到了一些奇怪的事情。我对Python很新,如果这是基础知识,那就很抱歉。
a = 12
b = int(24/3)
x = (a < b)
从调试器: 我有:
a (int) = 12
b (int) = 8
x (bool) = True
所以似乎8&gt; 12在这种情况下,我在这里一无所知,有什么解释吗?
PS:x = a&lt; b做同样的事(没有括号)
修改 我正在使用挤压(自动测试),这似乎是问题,因为我要求一些同事在挤压中测试相同的snipet并且它也是如此。
答案 0 :(得分:3)
某些东西根本就是错误的,可能在您的调试器或代码的其他部分。 Python基本算法没有合理的无错误。
>>> a = 12
>>> b = 24/3
>>> a < b
False
答案 1 :(得分:1)
这是Squish的well-known behaviour行为,虽然不是很直观。您的int
调用不使用Python int
函数,而是调用int
构造函数来构造一个整数,该整数可以传递给被测应用程序中的方法(setWidth
或者)。即Squish覆盖了int
的含义。
您可以使用
import __builtin__
a = 12
b = __builtin__.int(24/3)
x = (a < b)
强制获取Python int
。
答案 2 :(得分:0)
代码工作得很好。没有错误。正如其他人所说,调试器出了问题。我建议编辑问题以包含有关您正在使用的环境的详细信息,以便我们可以复制该问题。