Переменные и присваивание
Уроки курсаПеременные и присваивание
Имена переменных: правила и ограничения
Имя переменной — это не просто строка символов, которую вы придумываете произвольно. У Python есть жёсткие правила, и если вы их нарушаете, интерпретатор отказывается выполнять код ещё до того, как дойдёт до вашей логики.
Имя может состоять из букв латинского алфавита (а также символов Unicode, но об этом позже), цифр и символа подчёркивания _. Всё остальное — пробелы, дефисы, точки, скобки — недопустимо.
Одно ограничение особенно важно запомнить: имя не может начинаться с цифры. Python видит цифру в начале и думает, что перед ним число, а не идентификатор. Поэтому 2name — синтаксическая ошибка, а name2 — вполне корректное имя.
Второе правило касается регистра. Python различает строчные и прописные буквы, так что age, Age и AGE — это три разные переменные. Случайная путаница регистра — частый источник ошибок у начинающих, особенно когда переменная объявляется в одном месте, а используется в другом с другим регистром.
Третье правило: нельзя использовать зарезервированные слова Python в качестве имён переменных. Зарезервированные слова — это ключевые слова языка, которые Python уже занял под свои нужды: if, for, while, and, or, not, True, False, None, return, def и другие. Если попробовать написать if = 5, получите SyntaxError немедленно. Таких слов в языке несколько десятков — запоминать их список целиком не нужно, достаточно знать, что они существуют, и не удивляться ошибке, если имя окажется занятым.
Наконец, несколько слов о стиле. Технически X, myVar, my_var и MYVAR — всё это допустимые имена. Но в Python-сообществе принято писать имена переменных строчными буквами, разделяя слова подчёркиванием: user_name, total_price, max_value. Такой стиль называется snake_case, и он сделает ваш код читаемым для любого другого Python-разработчика.
Вот примеры, которые иллюстрируют все правила сразу:
user_name = "Анна" # корректно: строчные буквы, подчёркивание
age2 = 25 # корректно: цифра не в начале
_temp = 0 # корректно: начинается с подчёркивания
# Эти варианты вызовут ошибку:
# 2name = "Анна" # SyntaxError: начинается с цифры
# my-name = "Анна" # SyntaxError: дефис недопустим
# if = 3 # SyntaxError: зарезервированное слово
Примеры с ошибками закомментированы — они показывают запрещённые конструкции, не прерывая выполнение файла. Попробуйте раскомментировать любую из них и запустить — Python выдаст SyntaxError с указанием строки.
