IF и ELIF функции и для функции - PullRequest
0 голосов
/ 05 марта 2020
x = int(input("Numbers of Voters:"))
a = input("Candidate 1:")
b = input("Candidate 2:")
c = input("Candidate 3:")

for i in range(x):
    print ("Enter Your 1st choice ")
    for a in range(1):
        a= input("1st Choice: ")
for i in range(x):
    print ("Enter your 2nd choice ")
    for b in range(1):
        b= input("2nd Choice: ")
for i in range(x):
    print ("Enter your 3rd choice ")
    for c in range(1):
        c= input("3rd Choice: ")

if (a > b) and (a > c):
  print("Winner is", a)
elif (b > a) and (b > c):
  print("Winner is", b)
else (c > a) and (c > b):
  print("Winner is", c)

Мой код не работает, он должен спрашивать количество избирателей и имена трех кандидатов, тогда каждый избиратель должен будет ранжироваться от большинства к наименее любимому кандидату, а когда число голосов закончится sh, Предполагается напечатать «Победитель есть» и тот, который является самым любимым. Я не знаю, правильно ли я это сделал, потому что у меня появляется ошибка каждый раз, когда я меняю это. Я знаю, как кодировать python, и я не знаю, как сделать печать первым, вторым и третьим вариантами, а затем перейти ко второму избирателю, поэтому я решил напечатать первый вариант 3 раза, затем второй вариант 3 раза и третий вариант 3 раза, так что если кто-нибудь сможет исправить мой код, я буду очень благодарен.

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Я не знаю python, поэтому я знаю, что ниже приведены синтаксические ошибки. Логика c - это то, что вам нужно, чтобы заставить ее работать.

В двух словах: подсчитайте каждого кандидата. Назначьте цифру c каждому кандидату. 3, если это первый выбор, 2, если второй, и 1, если третий. В конце концов, человек с наибольшим количеством очков становится победителем.

x = int(input("Numbers of Voters:"))
a = input("Candidate 1:")
b = input("Candidate 2:")
c = input("Candidate 3:")

aCount=0
bCount=0
cCount=0

for i in range(x):
    candidate1 = input("First Choice")
    if candidate1 == a :aCount=aCount+3
    if candidate1 == b :bCount=bCount+3
    if candidate1 == c :cCount=cCount+3

   candidate2 = input("Second Choice")
    if candidate2 == a :aCount=aCount+2
    if candidate2 == b :bCount=bCount+2
    if candidate2 == c :cCount=cCount+2

  candidate3 = input("Third Choice")
    if candidate3 == a :aCount=aCount+1
    if candidate3 == b :bCount=bCount+1
    if candidate3 == c :cCount=cCount+1

if candidate1>candidate2 and candidate1>candidate3 : print ("candidate 1 wins") 
0 голосов
/ 05 марта 2020

Вы пытаетесь сравнить строки друг с другом. Чтобы сохранить количество голосов, за которые проголосовал кандидат, вы можете использовать словарь, в котором каждый кандидат является отдельным ключом. Тогда вам даже не нужен оператор if-else для получения максимального значения (используя функцию max в нижней части этого кода)

x = int(input("Numbers of Voters:"))
a = input("Candidate 1:")
b = input("Candidate 2:")
c = input("Candidate 3:")

votes = {
  a: 0,
  b: 0,
  c: 0
}

for i in range(x):
    print("Enter Your 1st choice ")
    vote1 = input("1st Choice: ")
    votes[vote1] += 1

    print("Enter your 2nd choice ")
    vote2 = input("2nd Choice: ")
    votes[vote2] += 1

    print("Enter your 3rd choice ")
    vote2 = input("3rd Choice: ")
    votes[vote3] += 1

# get the candidate with the most votes
winner = max(votes, key=votes.get)
print("Winner is: ", winner)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...