Что нужно сделать
В файле first_tour.txt
записано число K и данные об участниках турнира по настольной игре «Орлеан»: фамилии, имена и количество баллов, набранных в первом туре. Во второй тур проходят участники, которые набрали более K баллов в первом туре.
Напишите программу, которая выводит в файл second_tour.txt
данные всех участников, прошедших во второй тур, с нумерацией.
В первой строке нужно вывести в файл second_tour.txt
количество участников второго тура. Затем программа должна вывести фамилии, инициалы и количество баллов всех участников, прошедших во второй тур, с нумерацией. Имя нужно сократить до одной буквы. Список должен быть отсортирован по убыванию набранных баллов.
Пример:
Содержимое файла first_tour.txt:
80
Ivanov Serg 80
Sergeev Petr 92
Petrov Vasiliy 98
Vasiliev Maxim 78
Содержимое файла second_tour.txt:
2
1) V. Petrov 98
2) P. Sergeev 92
Что оценивается
- Результат вычислений корректен.
- Формат вывода соответствует примеру.
- Основной функционал описан в отдельных функциях.
- Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3).
- Входные и выходные файлы названы так, как указано в задании.
first_file = open('first_tour.txt', 'r', encoding='UTF-8')
second_file = open('second_tour.txt', 'a', encoding='UTF-8')
win_list = []
start = int(first_file.readline())
for line in first_file:
person = line.split()
if int(person[2]) > start:
new_person = ((person[1][0]), (person[0]), int(person[2]))
win_list.append(new_person)
win_list.sort(key=lambda i:i[2], reverse=True)
second_file.write(f'{len(win_list)}\n')
for num, pers in enumerate(win_list, 1):
second_file.write(f'{num}) {pers[0]}. {pers[1]} {pers[2]}\n')
first_file.close()
second_file.close()