2024-05-19 14:30:56 发布
网友
嗨,伙计们,我搞错了
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
我该怎么解决?
执行以下操作:
number = int(input('Type in a number between 5 and 20 - '))
在Python 3中,不能直接比较字符串和数字,因为要这样做,要么需要将字符串转换为数字,要么需要将数字转换为字符串。Python不会试图猜测哪一个是正确的(事实上,将非数字字符串转换为数字会导致解释器不知道如何处理的错误)。
input返回字符串。您需要自己使用int函数将此字符串转换为整数,以便将其与0进行比较
input
int
input返回一个字符串,因此当您输入示例“3”时,您将执行如下比较
while '3' > 0: pass
这是错误的原因,因为字符串和int对于大于操作是不可比较的。若要修复此问题,请将输入值转换为int。
像这样
请注意,如果字符串不能转换为整数值,则会引发异常。您可能希望捕获该异常并打印错误消息,否则脚本将退出。
执行以下操作:
在Python 3中,不能直接比较字符串和数字,因为要这样做,要么需要将字符串转换为数字,要么需要将数字转换为字符串。Python不会试图猜测哪一个是正确的(事实上,将非数字字符串转换为数字会导致解释器不知道如何处理的错误)。
input
返回字符串。您需要自己使用int
函数将此字符串转换为整数,以便将其与0进行比较input
返回一个字符串,因此当您输入示例“3”时,您将执行如下比较这是错误的原因,因为字符串和int对于大于操作是不可比较的。若要修复此问题,请将输入值转换为
int
。像这样
请注意,如果字符串不能转换为整数值,则会引发异常。您可能希望捕获该异常并打印错误消息,否则脚本将退出。
相关问题 更多 >
编程相关推荐