类型错误:“str”和“int”的实例之间不支持“<=”

新手上路,请多包涵

我正在学习python并进行练习。其中之一是编写一个投票系统,以使用列表在比赛的 23 名球员中选出最佳球员。

我正在使用 Python3

我的代码:

 players= [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
vote = 0
cont = 0

while(vote >= 0 and vote <23):
    vote = input('Enter the name of the player you wish to vote for')
    if (0 < vote <=24):
        players[vote +1] += 1;cont +=1
    else:
        print('Invalid vote, try again')

我明白了

类型错误:“str”和“int”的实例之间不支持“<=”

但我这里没有任何字符串,所有变量都是整数。

原文由 Douglas da Dias Silva 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

改变

vote = input('Enter the name of the player you wish to vote for')

vote = int(input('Enter the name of the player you wish to vote for'))

您从控制台获取输入作为字符串,因此您必须将该输入字符串转换为 int 对象才能进行数值运算。

原文由 X33 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您使用的是 Python3.x input 将返回一个字符串,因此您应该使用 int 方法将字符串转换为整数。

Python3 输入

如果存在 prompt 参数,则将其写入标准输出而没有尾随换行符。然后该函数从输入中读取一行, 将其转换为字符串(去除尾随的换行符),然后返回它。读取 EOF 时,会引发 EOFError。

顺便说一下,如果要将字符串转换为 int,使用 try catch 是个好方法:

 try:
  i = int(s)
except ValueError as err:
  pass

希望这可以帮助。

原文由 McGrady 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题