类型错误:无序类型:str()>int()

2024-05-19 14:30:56 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,伙计们,我搞错了

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

我该怎么解决?


Tags: andrun代码innumberinputastype
3条回答

执行以下操作:

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

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

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

input返回一个字符串,因此当您输入示例“3”时,您将执行如下比较

while '3' > 0:
    pass

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

像这样

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

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

相关问题 更多 >