Самый простой способ сделать это - использовать dict, если нет двух кандидатов с одинаковыми именами.
candidates = {"A":0, "B":0, "C":0}
Оттуда вы можете настроить функцию для поиска значения всловарь и увеличивайте его:
def update_vote(candidate):
candidates[candidate] += 1
Или, черт возьми, вы можете просто обновить голоса на месте, а не вызывать функцию с помощью:
candidates[candidate] += 1
Гораздо более питоническийспособ сделать это состоит в том, чтобы сделать каждого кандидата объектом, который может обновлять свой подсчет голосов.
class Candidate(object):
def __init__(self):
# This is the "constructor" for the object.
# It is run whenever an instance of this object is created.
# We want it to "spawn in" with zero votes.
self.vote_count = 0
def update_vote(self):
self.vote_count += 1
Кажется, это ближе к тому, что вы получали в своем первоначальном посте.Вы должны создать объект следующим образом:
A = Candidate()
B = Candidate()
C = Candidate()
И затем в своем основном цикле вы просто скажете каждому объекту обновляться:
if vote == "A":
A.update_vote()
Наконец, когда выДля подсчета голосов нужно просто попросить каждый объект подсчитать количество голосов:
if A.vote_count > B.vote_count and A.vote_count > C.vote_count