Указание правильного победителя для каждой игры Python - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь создать программу с Python, которая будет запрашивать у пользователя оценки за 5 игр. Затем мне нужно, чтобы победитель каждого матча был напечатан в конце. У меня проблема с получением правильного победителя для каждого матча для печати. Я могу использовать только списки, для циклов и операторов if / else. Я новичок в программировании, поэтому я не уверен, что я делаю неправильно.

Описание: Программа примет количество очков, набранное каждой командой за 5 матчей, и распечатает данные вместе с победителем. Победившая команда - та, которая выигрывает больше всего матчей. Примечание: это не обязательно команда, которая набирает наибольшее количество очков.

games = [0, 0, 0, 0, 0]
winner = ["Team 1", "Team 2"]
gamesresults = 0
team1_scores = [0, 0, 0, 0, 0]
team2_scores = [0, 0, 0, 0, 0]
matches = ["Match 1", "Match 2", "Match 3", "Match 4", "Match 5"]

for games in range(5):
    team1_scores[games] = int(input("Enter the score from team 1 from match {}?".format(games+1)))
    team2_scores[games] = int(input("Enter the score from team 2 from match {}?".format(games+1)))
    games += 1

#the section i'm having problems with
for games in range(5):
    if team1_scores[games] > team2_scores[games]:
        winner = "Team 1"
    else:
        winner = "Team 2"

    gamesresults = [team1_scores, team2_scores, winner]

#this is ok
print(" ", "Team 1", "Team 2", "Winner")

for i in range(5):
    print("Matches", i+1, team1_scores[i], team2_scores[i], winner)

if team1_scores > team2_scores:
    print("The Winner is Team 1")
else:
    team2_scores > team1_scores
    print("The Winner is Team 2")

Ответы [ 2 ]

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

Проблема в том, что вы должны считать количество матчей, выигранных каждой командой, вместо этого вы переопределяете переменную winner в каждой для l oop.

Вам необходимо сохранить каждый счет выигранных игр по двум различным переменным, а затем сравните их:

# save both amounts
won_by_team1 = 0
won_by_team2 = 0
for games in range(5):
    if team1_scores[games] > team2_scores[games]:
        won_by_team1 += 1
    else:
        won_by_team2 += 1


# compare them
if won_by_team1 > won_by_team2:
    winner = "Team 1"
else:
    winner = "Team 2"

Это не очень хороший код, но он поможет вам понять логику c, которую необходимо применить.

Как только вы поймете это, я бы порекомендовал переписать этот код, чтобы он выглядел лучше.

Дайте мне знать, если это поможет!

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

Я думаю, что ваш код не чистый код, но этот код работает

games = list()
team1_scores = list()
team2_scores = list()
winner = list()

for games in range(1, 6):
    team1_scores.append(int(input("Enter the score from team 1 from match {}?".format(games))))
    team2_scores.append(int(input("Enter the score from team 2 from match {}?".format(games))))

for team1_score, team2_score in zip(team1_scores, team2_scores):
    if team1_score > team2_score:
        winner.append("Team 1")
    else:
        winner.append("Team 2")

for i in range(len(winner)):
    print("In match {} score of team 1 is : {} and score of team 2 is : {} and winner is {}".format(i+1, team1_scores[i], team2_scores[i], winner[i]))

print("The Winner is " + max(winner))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...