Ниже — подробный план решения и пример реализации.
Цель решения
- Найти первого ученика в списке, чья оценка равна X.
- В первой строке списка — фамилия и имя ученика, во второй — их оценки в том же порядке, третья строка — X.
План решения (общий)
- Разделить первую строку на элементы по разделителю запятая+пробел (или по запятым с обрезкой пробелов): получить список "Фамилия Имя".
- Из каждого элемента взять имя (в типовом формате "Фамилия Имя" или "Фамилия Имя Отчество"):
- взять второй токен после разделения пробелами (tokens[1]), если он существует.
- иначе оставить пустую строку. Это обеспечивает получение именно имени (Имя).
- Разделить вторую строку на оценки по тем же правилам разделения и привести к целым числам.
- Прочитать третью строку и привести к целому X.
- Пройтись по списку оценок по порядку и найти первый индекс i, где оцени == X.
- Вывести имя на этом индексе. Если такого индекса нет, можно вывести сообщение об отсутствии.
Пример реализации на Python (работает с разделителями ", " или просто "," — обрезает лишние пробелы)
- Ввод следует подать как строки: line1, line2, line3.
def find_first_with_grade(line1, line2, line3): # 1) Разделяем имена items = [s.strip() for s in line1.split(",")] # 2) Получаем имя (второй токен, если есть) names = [] for item in items: tokens = item.split() if len(tokens) >= 2: names.append(tokens[1]) elif tokens: names.append(tokens[0]) else: names.append("")
# 3) Разделяем оценки
score_strs = [s.strip() for s in line2.split(",")]
scores = []
for s in score_strs:
if s:
try:
scores.append(int(s))
except ValueError:
scores.append(None) # на случай некорректного входа
else:
scores.append(None)
# 4) X
try:
X = int(line3.strip())
except ValueError:
return None # неверный ввод
# 5) Поиск первого индекса с оценкой X
for i, sc in enumerate(scores):
if sc == X:
return names[i]
# 6) Если не найдено
return None
Пример использования
Ввод: line1 = "Иванов Иван, Петров Петр, Смирнова Елена" line2 = "5, 4, 5" line3 = "5"
Результат: первый студент с оценкой 5 — Иван (из Иванова Ивана).
Если у вас есть конкретные строки входа, пришлите их — применю решение к вашим данным и выведу точный ответ.