Python: Выбор имени переменной

Представьте, что у нас есть такая программа:

x = 'Father!'
print(x)

С технической точки зрения — всё работает. Мы уже видели похожие примеры, но здесь используется переменная с названием x. Плохие имена мешают читать и понимать код. Вот несколько примеров неудачных переменных:

a = "John"
n = 42
ddr = "New York"

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

Компьютеру всё равно, как называется переменная. Для него x, abc, message или elephant_in_the_room — просто метки для хранения данных. Но людям — не всё равно. Программисты читают код гораздо чаще, чем пишут. Поэтому имена переменных — это не просто мелочь, а важная часть общения через код.

✅ Хорошие примеры

user_name = "Arya Stark"
unpaid_orders_count = 3
max_attempts = 5
email_verified = False

Хорошее имя переменной помогает понять, что делает программа, не вчитываясь в каждую строчку. Особенно важно давать такие имена, смысл которых понятен без контекста — без необходимости читать весь код вокруг.

Вот несколько советов:

  • Используйте английский язык. Это международный стандарт. Не стоит писать kolvo_zakazov — лучше orders_count. Если с английским пока сложно — используйте переводчик, это нормально. Со временем станет проще.
  • Старайтесь, чтобы имя отражало смысл переменной. Пусть оно будет чуть длиннее, но понятное.
  • Не бойтесь тратить время на подбор хорошего названия. Это инвестиция в читаемость и поддержку кода.

Среди программистов даже есть шутка: «Одни из самых трудных задач в программировании — это кэширование и придумывание имён переменным.» Иногда придумать имя — действительно сложно. Вот пример: как бы вы назвали переменную, в которой хранится количество неоплаченных заказов от клиентов с задолженностью за предыдущий квартал?

А теперь — небольшое упражнение: Придумайте название для переменной, в которой будет храниться «количество братьев и сестер короля». Запишите его в блокноте или отправьте себе на почту. Только название, без объяснений. Мы вернемся к этому заданию через несколько уроков.

Задание

Создайте переменную, описывающую количество своих братьев, и присвойте ей значение 2. Распечатайте содержимое переменной. Затем сравните свое имя с именем, которое используется в учительском решении.

Определения

Переменная
способ сохранить информацию и дать ей имя для последующего использования в коде.
Как с вами связаться? 🙃

Команда проекта находится в телеграм-сообществе по ссылке https://ttttt.me/HexletLearningBot. Там можно задать любой вопрос и повлиять на проект

Упражнение не проходит проверку — что делать? 😶

Если вы зашли в тупик, то самое время поговорить с нашим асситентом Тота во вкладке "ИИ-помощник". Как правильно задать вопрос:

В моей среде код работает, а здесь нет 🤨

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

Мой код отличается от решения учителя 🤔

Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи. В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Прочитал урок — ничего не понятно 🙄

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

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются

Привет! Я Тота и моя задача помочь в обучении. Чтобы активировать меня, нужно зарегистрироваться или залогиниться, если у вас уже есть аккаунт

Loading...

Ваше упражнение проверяется по этим тестам

1from hexlet.test import expect_output
2
3
4def test(capsys):
5    expected = "2"
6    expect_output(capsys, expected)
7

Решение учителя откроется через:

20:00
waiting_clock