TypeError:unorderable类型:str()> INT()

时间:2016-08-11 23:09:31

标签: python python-3.x

大家好我收到错误

TypeError: unorderable types: str() > int()

当我运行下面的代码时。我刚开始学习python

number = input('Type in a number between 5 and 20 - ')
# run loop as long as the number is more than 0
while number > 0:
    print('Number: ', number)
    number -= 1

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

这样做:

{{1}}

答案 1 :(得分:3)

在Python 3中,字符串和数字不能直接进行比较,因为要这样做,要么将字符串转换为数字,要么将数字转换为字符串。 Python没有尝试猜测哪一个是正确的(实际上,将非数字字符串转换为数字会导致解释器不知道如何处理的错误。)

input返回一个字符串。您需要使用int函数将此字符串转换为整数,以将其与0进行比较

答案 2 :(得分:1)

input正在返回一个字符串,因此当您输入例如' 3'时,您就会进行比较,例如

while '3' > 0:
    pass

这是导致错误的原因,因为对于大于操作的字符串和int不可比较。要解决此问题,请将输入值转换为int

喜欢这样

number = int(input('Type in a number between 5 and 20 - '))

请注意,如果字符串无法转换为整数值,则会引发异常。您可能希望捕获该异常并打印错误消息,否则您的脚本将退出。