Python: Именование переменных
greeting служит примером простого и понятного имени переменной. Но часто имен вроде name, email или price оказывается недостаточно. Например, нужно описать имя пользователя, общее количество заказов, максимальную длину сообщения. Такие имена уже состоят из нескольких слов. Как в таком случае будет выглядеть имя переменной?
В разных языках программирования используются разные стили именования. От этого зависит, как будет выглядеть имя переменной из нескольких слов. Например, вот как можно записать переменную, которая хранит максимальную длину сообщения:
maxmessagelengthmaxMessageLengthmax-message-lengthmax_message_length
Основные стили
Вот три популярных подхода к написанию составных имен:
-
kebab-case: слова разделяются дефисом:
max-message-length.В Python не работает, так как дефис (-) воспринимается как оператор вычитания.
-
snake_case: слова разделяются подчеркиванием:
max_message_length.Это стандарт для Python.
-
CamelCase (или UpperCamelCase): каждое слово с заглавной буквы, без разделителей:
maxMessageLength.
Как правильно в Python
user_name = "Daenerys"
max_length = 280
total_orders_count = 17- Все буквы строчные
- Слова разделяются символом подчеркивания
Как не надо
Не стоит включать тип данных в имя переменной. Такие имена хуже читаются и быстро устаревают. Например, user_name_string или messages_number описывают не смысл переменной, а ее техническую реализацию.
Имя должно отвечать на вопрос "что хранится?", а не "какого это типа?". Поэтому лучше писать user_name вместо user_name_string и messages_count вместо messages_number.
Задание
- Создайте две переменные: количество товаров в заказе и цена одного товара. Используйте snake_case. Как вы назовете переменные — на ваше усмотрение, тесты это не проверяют.
- Запишите в первую переменную число
20, во вторую —100. - Вычислите итоговую стоимость заказа.
- Выведите результат на экран.
Полезное
Python: Именование переменных
greeting служит примером простого и понятного имени переменной. Но часто имен вроде name, email или price оказывается недостаточно. Например, нужно описать имя пользователя, общее количество заказов, максимальную длину сообщения. Такие имена уже состоят из нескольких слов. Как в таком случае будет выглядеть имя переменной?
В разных языках программирования используются разные стили именования. От этого зависит, как будет выглядеть имя переменной из нескольких слов. Например, вот как можно записать переменную, которая хранит максимальную длину сообщения:
maxmessagelengthmaxMessageLengthmax-message-lengthmax_message_length
Основные стили
Вот три популярных подхода к написанию составных имен:
-
kebab-case: слова разделяются дефисом:
max-message-length.В Python не работает, так как дефис (-) воспринимается как оператор вычитания.
-
snake_case: слова разделяются подчеркиванием:
max_message_length.Это стандарт для Python.
-
CamelCase (или UpperCamelCase): каждое слово с заглавной буквы, без разделителей:
maxMessageLength.
Как правильно в Python
user_name = "Daenerys"
max_length = 280
total_orders_count = 17- Все буквы строчные
- Слова разделяются символом подчеркивания
Как не надо
Не стоит включать тип данных в имя переменной. Такие имена хуже читаются и быстро устаревают. Например, user_name_string или messages_number описывают не смысл переменной, а ее техническую реализацию.
Имя должно отвечать на вопрос "что хранится?", а не "какого это типа?". Поэтому лучше писать user_name вместо user_name_string и messages_count вместо messages_number.
Задание
- Создайте две переменные: количество товаров в заказе и цена одного товара. Используйте snake_case. Как вы назовете переменные — на ваше усмотрение, тесты это не проверяют.
- Запишите в первую переменную число
20, во вторую —100. - Вычислите итоговую стоимость заказа.
- Выведите результат на экран.
Полезное
Ваше упражнение проверяется по этим тестам
import importlib
def test(capsys):
expected = "2000"
expect_output(capsys, expected)
def expect_output(capsys, expected):
importlib.import_module('solution')
out, _err = capsys.readouterr()
actual = out.strip('\n')
with capsys.disabled():
print('\n')
print(out)
assert actual == expectedРешение учителя откроется через:
20:00
