投票不算数

时间:2015-04-28 07:00:21

标签: python

这个简单的计划符合四候选人的选票。 投票一次一个,投票四候选人用数字表示, 最后在屏幕上打印获胜者。

有我的代码

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

3 个答案:

答案 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'