这个简单的计划符合四候选人的选票。 投票一次一个,投票四候选人用数字表示, 最后在屏幕上打印获胜者。
有我的代码
candList = [0, 0, 0, 0]
while True:
print '1 for First Candidate'
print '2 for Second Candidate'
print '3 for Third Candidate'
print '4 for Fourth Candidate'
print '5 for Exit Poll'
cid = input('Enter Candidate Number to Vote: ')
if cid == 5:
break
candList[cid - 1]
vote = max(candList)
candidate = candList.index(vote) + 1
print 'Winner is Candidate', candidate, 'with', vote, 'Votes'
但问题投票不算...... 我给1候选人3票,但最后打印
Result is : Winner is Candidate 1 with 0 Votes
答案 0 :(得分:4)
您的代码中存在许多问题。
首先,id
是内置函数,不要使用id
作为变量名。同样适用于list
第二,第15行(list[id-1]
)显然什么也没做。第三,您不应使用eval
将字符串转换为整数,而是使用int
。
此代码应该可以完成这项工作,但它仍然有一些注意事项:用户可以输入15或不输入数字,程序将被终止,当两位候选人获得相同数量的投票时,它也无法处理/ p>
lst = [0, 0, 0, 0]
while True:
print '1 for First Candidate'
print '2 for Second Candidate'
print '3 for Third Candidate'
print '4 for Fourth Candidate'
print '5 for Exit Poll'
cid = int(input('Enter Candidate Number to Vote: '))
if cid == 5:
break
lst[cid - 1] += 1
vote = max(lst)
candidate = lst.index(vote) + 1
print 'Winner is Candidate', candidate, 'with', vote, 'Votes'
答案 1 :(得分:3)
您永远不会为list[cid - 1]
分配值。您应该将该行更改为以下内容:
list[cid - 1] += 1
此外,我建议您不要使用list
作为列表的名称。
答案 2 :(得分:0)
选中此项您没有更改相应的人数更改代码
list = [0, 0, 0, 0]
while True:
print '1 for First Candidate'
print '2 for Second Candidate'
print '3 for Third Candidate'
print '4 for Fourth Candidate'
print '5 for Exit Poll'
id = int(raw_input('Enter Candidate Number to Vote: '))
if id == 5:
break
#Change Here add the count
list[id - 1] = list[id-1]+1
vote = max(list)
candidate = list.index(vote) + 1
print 'Winner is Candidate', candidate, 'with', vote, 'Votes'