Именование

Стиль именования функций в Python такой же, как и стиль именования переменных: snake_case. Но при выборе самих слов есть важное отличие.

Функция — действие, вызов функции всегда подобен указанию «сходи», «возьми», «напечатай», «положи» и так далее. Вспомните, какие функции были в предыдущих уроках:

  • show_date() («показать дату»)
  • sub() (subtract — «вычесть»)
  • print() («напечатать»)
  • round() («округлить»)

Переменная — сущность, поэтому мы используем существительные:

  • child
  • result
  • euros

Берите на вооружение следующую структуру: функция — глагол, переменная — существительное.

В уроке про переменные мы просили вас придумать название переменной и записать в блокноте или отправить себе на почту. Найдите это название и посмотрите на него свежим взглядом: оно понятное? Описывает суть однозначно или требует вникания?

(У нас также была функция parent_for(), и это имя — не глагол. Можно было бы назвать её get_parent_for(), но имена типа parent_for(), child_of(), price_at() — общепринятые формы. «Функция — глагол» — не железное правило, но почти всегда лучше придерживаться его).

Жизнь программиста наполнена такими моментами: открыть старый код и попытаться понять его. Будьте добры к будущему себе и к коллегам, давайте переменным и функциям понятные названия.

Задание

В Python из языка Си перекочевал ещё один способ форматирования (интерполяции) строк (в дополнение к .format(), который мы рассматривали ранее в разделе про интерполяцию строк). Оператор форматирования % coздаёт строку на основе шаблона и данных:

result = 'Today is %s %d' % ('February', 8)
print(result)
Today is February 8

Слева от оператора % находится строка-шаблон, в которой кроме самого текста могут присутствовать специальные заполнители. Это «заглушки» для информации, которая передаётся аргументом справа. %s означает «заглушка для строки», %d — для числа. Поэтому справа находится пара значений — строка и число.

Значения записаны в общих скобках через запятую: это так называемый кортеж — фиксированной длины набор значений. На английском “кортеж” звучит как “tuple”. В конце урока вы найдёте ссылку на статью о кортежах в информатике.

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

При выводе дат иногда требуется фиксировать количество цифр, скажем, всегда писать нули перед числом если число меньше 10. % позволяет решить эту задачу:

result = 'Today is %s %02d' % ('February', 8)
print(result)
Today is February 08

%02d — сделать две цифры и заполнить нулями оставшееся пространство. %03d — три цифры, и так далее:

result = 'Today is %s %04d' % ('February', 8)
print(result)
Today is February 0008

Реализуйте функцию get_formatted_birthday(), которая принимает на вход три параметра: день, месяц и год рождения, а возвращает их строкой в отформатированном виде, например: 30-02-1953.

День и месяц нужно форматировать так, чтобы при необходимости добавлялся 0 слева. Например, если в качестве месяца пришла цифра 7, то в выходной строке она должна быть представлена как 07.


Советы


Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном cообществе
Упражнение доступно только авторизованным пользователям.

Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.