TypeError:'str'和'int'实例之间不支持'< ='

时间:2017-01-31 05:06:26

标签: python python-3.x

我正在学习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')

我得到了

  

TypeError:'str'和'int'

的实例之间不支持'&lt; ='

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

4 个答案:

答案 0 :(得分:34)

更改

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对象才能进行数值运算。

答案 1 :(得分:14)

如果您正在使用Python3.x english, lang1, lang2 air, air_lang1, air_lang2 ball, ball_lang1, ball_lang2 rat, rat_lang1, rat_lang2 将返回一个字符串,那么您应该使用input方法将字符串转换为整数。

Python3 Input

  

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

顺便说一句,如果你想将字符串转换为int,这是使用int try的好方法:

catch

希望这有帮助。

答案 2 :(得分:1)

使用输入功能时,它会自动将其转换为字符串。你需要去:

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

将输入转换为int类型值

答案 3 :(得分:0)

input()默认情况下采用字符串形式的输入。

if (0<= vote <=24):

vote采用字符串输入(假设为'4','5'等)并且变得不可比。

正确的方法是:vote = int(input("Enter your message")将输入转换为整数(根据输入将'4'转换为4或'5'转换为5)