Задача 1. Разминочная, но в ней подвох

Первая задача всегда разминочная, это тест "свой-чужой". Не решил - на выход, сурово, жестоко, как есть. Решил криво - будь добр переделать или хотя бы покажи собеседнику, что видишь ошибки. А лучше сразу решить красиво, отказоустойчиво, задействуя современный Python. В этой статье я привожу пример такой задачи и даю три варианта решения: новичковое, нормальное и отличное. Условие задачи и код с комментариями в статье.

Постановка задачи

Есть фамилия, имя и отчество. Нужно получить ФИО: был Сидоров Иван Семенович, должен получиться Сидоров И. С. И просто, и сложно одновременно:

✅ Если знать распаковку, split, f-строки, то решить не составит труда;

✅ Если писать 💩-код с индексами частей ФИО и индексами букв, то можно, в лучшем случае, запутаться. В худшем - код упадет.

Здесь разбираю код новичка, хороший код и лучший код, учитывающий все нюансы.

Код новичка

Новичок пишет так, что лишь бы работало. Я не говорю, что это плохо. Лучше написать что-то, чем не написать ничего. Тем не менее, следует стремиться пользоваться возможностями Python на 100%.

# Задача 1. Фамилия и имя
poet = "Пушкин Александр Сергеевич"
# джун
name_parts = poet.split()
short_name = name_parts[0] + " " + name_parts[1][0].upper() + " " + \
    "." + name_parts[2][0].upper() + "."
print(short_name)

Недостатки видите сами:

✅ магические числа, индексы, сложение строк. Да, работает, но выглядит несовременно;

✅ проблема даже не в том, что код выглядит неряшливо. Проблема в том, что если отчества нет, то код упадет. Т.е. в этом коде сразу скрыта бомба замедленного действия.

Требуется уровень Исследователь Повысить