我知道这是基本的,但我不能让这个工作。 它似乎不会理解大于60并且在循环中不断循环。
Python 2.7.3
rackNo = 0
while (rackNo > 60) or (rackNo < 1) :
rackNo = raw_input("Enter the Rack number you are using: ")
if (rackNo > 60) or (rackNo < 1) :
print "Rack number must be between 1 and 60"
答案 0 :(得分:8)
您将字符串(从raw_input
)与整数进行比较。
最终,你需要类似的东西:
rackNo = int(raw_input("Enter the Rack number you are using: "))
在python2.x中,内置类型之间的比较(>
,<
)是依赖于实现的。在python3.x中,明确禁止这些比较。
运算符&lt;,&gt;,==,&gt; =,&lt; =和!=比较两个对象的值。对象不必具有相同的类型。如果两者都是数字,则将它们转换为通用类型。否则,不同类型的对象总是比较不相等,并且一致但是任意地排序。您可以通过定义
__cmp__
方法或丰富的比较方法(如__gt__
)来控制非内置类型对象的比较行为,如特殊方法名称一节所述。
运算符&lt;,&gt;,==,&gt; =,&lt; =和!=比较两个对象的值。对象不必具有相同的类型。如果两者都是数字,则将它们转换为通用类型。否则,==和!=运算符总是将不同类型的对象视为不相等,而&lt;,&gt;,&gt; =和&lt; =运算符在比较不具有不同类型的对象时引发TypeError为给定的一对类型实现这些运算符。您可以通过定义像
__gt__()
这样的丰富比较方法来控制非内置类型对象的比较行为,如基本自定义一节中所述。