我正在学习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; ='
但我这里没有任何字符串,所有变量都是整数。
答案 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
方法将字符串转换为整数。
如果存在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)