Python

Сложная задача. питон

В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и количество баллов, разделенные пробелами:
<Фамилия> <Имя> <Количество баллов>
Вывести фамилии и имена тех учеников, которые не прошли порог - 40б и надпись "Не пройден порог:"


отдельно как другое задание:
К предыдущей задаче добавить к полученному списку нумерацию, сократить имя до одной буквы и поставить перед фамилией и вывести данные в другой файл:
Olga Voytyuk
Olga Voytyuk
119
Для решения этой задачи можно использовать язык программирования Python и следующий код:

# Открываем файл с данными
with open('результаты_экзамена.txt', 'r') as file:
# Создаем список для хранения данных об учениках, не прошедших порог
failed_students = []
# Считываем каждую строку из файла
for line in file:
# Разбиваем строку на фамилию, имя и количество баллов
surname, name, score = line.split()
# Проверяем, прошел ли ученик порог
if int(score) < 40:
# Добавляем фамилию и имя ученика в список не прошедших порог
failed_students.append(f'{name[0]}. {surname}')
# Создаем новый файл для записи результатов
with open('результаты_экзамена_не_прошли.txt', 'w') as output_file:
# Выводим фамилии и имена учеников, не прошедших порог, в новый файл
for i, student in enumerate(failed_students):
output_file.write(f'{i+1}. Не пройден порог: {student}n')


В этом коде мы открываем файл с данными и считываем каждую строку из него. Затем мы разбиваем каждую строку на фамилию, имя и количество баллов и проверяем, прошел ли ученик порог. Если ученик не прошел порог, мы добавляем его фамилию и имя в список не прошедших порог. Затем мы создаем новый файл для записи результатов и выводим фамилии и имена учеников, не прошедших порог, в новый файл с нумерацией и сокращенным именем.
Vitalie Bereziuc
Vitalie Bereziuc
14 368
Лучший ответ
```python
with open('data.txt', 'r') as f:
print("Не пройден порог:")
for line in f:
last_name, first_name, score = line.split()
if int(score) < 40:
print(f"{last_name} {first_name}")
```

Для второй части задачи можно добавить нумерацию и сократить имя до одной буквы:

```python
with open('data.txt', 'r') as f, open('output.txt', 'w') as out:
out.write("Не пройден порог:\n")
i = 1
for line in f:
last_name, first_name, score = line.split()
if int(score) < 40:
out.write(f"{i}. {last_name} {first_name[0]}.\n")
i += 1
```

Этот код считывает данные из файла `data.txt`, проверяет количество баллов каждого ученика и выводит фамилии и имена тех учеников, которые не прошли порог в файл `output.txt`. Вы можете изменить имена файлов в соответствии с вашими требованиями.
Илья Саитов
Илья Саитов
11 134