Помогите написать цикл для программы в Python
Задание звучит так: Известны результаты каждой из 4х четвертей баскетбольной встречи. Нужно определить победителя матча. Побеждает команда, набравшая больше очков в течение всего матча.
Входные данные Входной файл INPUT.TXT содержит 4 строки, в каждой строке находится два целых числа a и b – итоговый счет в соответствующей четверти. а – количество набранных очков за четверть первой командой, b – количество очков, набранных за четверть второй командой. (0 ≤ a,b ≤ 100).
Выходные данные В выходной файл OUTPUT.TXT выведите номер выигравшей команды, в случае ничьей следует вывести «DRAW».
Я написала такую программу:
a1,b1=map(int,input().split())
a2,b2=map(int,input().split())
a3,b3=map(int,input().split())
a4,b4=map(int,input().split())
a=a1+a2+a3+a4
b=b1+b2+b3+b4
if a==b:
print('DRAW')
if a>b:
print('1')
if a<b:
print('2')
Понимаю, что как-то можно написать циклом. Например, если строчек будет 40. Я же не буду вот так вручную писать. Но даже идеи нет, с чего подступиться. Помогите, пожалуйста.
Ответы (2 шт):
Врятли цикл понадобится при использовании input() но, как говорится, спрашивали - отвечаем:
def result(score: str):
team_1, team_2 = map(int, score.split())
print((team_2 > team_1) + 1 if team_1 != team_2 else 'DRAW')
if __name__ == '__main__':
while True:
try: # в данном случае это обход ошибки эмулятора ввода.
# возникающей в тот момент когда файл из которого берутся данные заканчивается
# на самом деле данные читаются из файла
# собственно как и там где Вы взяли эту задачку
result(input())
except EOFError:
break
А вот при чтении данных из файла вполне себе может пригодиться:
def result(score: str):
team_1, team_2 = map(int, score.split())
print((team_2 > team_1) + 1 if team_1 != team_2 else 'DRAW')
if __name__ == '__main__':
with open('score.txt', 'r', encoding='utf-8') as score_file:
for line in score_file.readlines():
result(line)
Можно сделать цикл просто по всем строчкам в файле. Для этого рекомендуется открывать файл при помощи "менеджера контекста" with ... as. Он сам закроет файл даже в случае ошибок. Для записи в файл OUTPUT открываем его в режиме записи 'w'. В таком режиме содержимое файла будет перезаписано, если файла нет - он будет создан.
a_sum = 0
b_sum = 0
message = 'DRAW'
with open('INPUT.TXT') as file:
for line in file:
a_score, b_score = map(int, line.split())
a_sum += a_score
b_sum += b_score
if a_sum > b_sum:
message = '1'
elif a_sum < b_sum:
message = '2'
with open('OUTPUT.TXT', 'w') as file:
file.write(message)