大家好我收到错误
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
我该如何解决这个问题?
答案 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 - '))
请注意,如果字符串无法转换为整数值,则会引发异常。您可能希望捕获该异常并打印错误消息,否则您的脚本将退出。