Идентификаторы, комментарии, отступы, операторы
Прежде чем писать циклы и функции, нужно усвоить базовые правила синтаксиса: как называть переменные, какие слова заняты самим языком, почему отступ в Python не украшение, а часть кода, и как правильно оставлять комментарии.
Материал актуален для Python 3.12 и 3.13. В новых версиях появились мягкие ключевые слова вроде match и type, которые можно использовать как имена, но лучше этого избегать. В добавленном разделе вы получите полный список ключевых слов, способ проверить любое имя прямо в коде и таблицу соглашений об именовании из PEP 8.

Содержание статьи
В Python есть список определенных слов, которые нельзя использовать в качестве названий переменных или функций, так как эти имена уже используются самим языком, для формирования синтаксиса, и самой структуры языка.
Важно помнить, что ключевые слова в Python, чувствительны к регистру. Все ключевые слова, кроме True, False, None, пишутся исключительно в нижнем регистре. Ниже приведен список всех ключевых слов.

Пока не пытайтесь понять что означает выше приведенная таблица, возможно вам сейчас кажется что все запутанно, и непонятно, но, мы с вами пройдемся по порядку, и в конечном итоге, вы поймете, что Python имеет отличный, понятный синтаксис. Если вы все же хотите немного поближе познакомится с зарезервированными словами, то вот вам полный список ключевых слов с примерами их применения.
Идентификаторы в Python
Идентификаторы - это имя, присваиваемой классам, функциям, переменным, они помогают отличить одно от другого, и с помощью идентификаторов, мы можем обращаться к вышеописанным сущностям.
Правила создания идентификаторов
- Идентификаторы - это комбинация букв в нижнем или верхнем регистре, цифры от 0 - 9, и символ подчеркивания. Примеры идентификаторов:
ClassName, variable_1, или говорящие сами за себя названия по типу, first_name, LastName. Старайтесь создавать такие идентификаторы, по названиям которых, будет понятно, что хранится в этих идентификаторах. - Важно! Идентификатор НЕ может начинаться с цифры, 1name (неправильно), правильно будет name1.
- Зарезервированные слова, не могут использоваться в качестве пользовательских идентификаторов, например:
global = 1
на выходе, при запуске нашей программы мы получим следующую ошибку:
File "<interactive input>", line 1 global = 1 ^ SyntaxError: invalid syntax - Так же, в качестве названий идентификаторов, нельзя использовать спецсимволы, при их использований, мы получим вышеописанную ошибку.
- Длина идентификатора, может быть любой
Важно запомнить
Python имеет высокую чувствительность к регистру, соответственно Name и name, это не одно и тоже, это разные идентификаторы. Как я уже писал, важно всегда давать переменным осмысленные названия, зачастую бывает такое, что спустя немного времени, вам сложно разобраться, что хранится в том, или ином идентификаторе.
Операторы, Отступы и комментарии в Python
Различные инструкции, которые может выполнять Python, называются операторами. Например count = 10, это оператор присваивания (переменной count с помощью знака равенства присваивается значение 10), оператор if, используется для создания условий, или оператор for, который используется для организации цикла, есть и другие операторы, которые с вами позже рассмотрим подробнее.
Отступы в Python
Во многих языках программирования, используют фигурные скобки, для того, что бы определить блок кода, в Python, блок кода определяется отступами. По общепринятым правилам используется четыре пробела, или табуляция. Пример:
for i in range(1,11):
print(i)
if i == 5:
break
Применения отступов, делает код Python аккуратным, и программы написанные на этом языке, выглядят стандартизированными, что в свою очередь повышает читабельность кода. Отступ обязателен для блока из нескольких строк; простую инструкцию можно записать в той же строке после двоеточия, но такой код читается хуже. Ниже приведены оба варианта.
if True:
print ('Hello')
a = 5
и
if True: print('Hello'); a = 5
Оба вышеприведенных кода, идентичны, и оба они верны с технической точки зрения, но стиль первого блока кода, более ясен, и более читабелен. Поэтому в дальнейшем рекомендую вам придерживаться вышеописанного стиля.
Комментарии в Python
Комментарии, это неотъемлемая часть в любом языке программирования, Python не является исключением. Благодаря комментариям, вы или другой человек, который будет смотреть ваш код, будет всегда понимать, что происходит в той, или иной части кода.
Комментарии начинаются с символа #, все что написано после данного символа, до конца строки, не учитывается в Python. Запомните, комментарии пишутся программистом, для программистов.
#Это комментарий
#Это тоже комментарий
print('Hello World')
Многострочные комментарии
Выше, мы рассмотрели способ комментирования построчно, в Python, так же есть многострочный способ комментирования, для этого используются тройные кавычки """ или ''' пример:
""" Это многострочный
комментарий """
Следующий урок: Переменные и константы в Python
Полный список ключевых слов и проверка имен
В Python 3.12 и 3.13 зарезервировано 35 ключевых слов. Их нельзя использовать как имена переменных, функций и классов:
False None True and as assert async
await break class continue def del elif
else except finally for from global if
import in is lambda nonlocal not or
pass raise return try while with yield
Список не нужно заучивать: его всегда можно получить из стандартного модуля keyword.
import keyword
print(len(keyword.kwlist)) # -> 35
print(keyword.softkwlist) # -> ['_', 'case', 'match', 'type']
print(keyword.iskeyword("class")) # -> True
print("1name".isidentifier()) # -> False
print("имя_1".isidentifier()) # -> True
Мягкие ключевые слова
match, case, _ и type (последнее добавлено в 3.12) работают как ключевые только в определенных конструкциях: match и case в сопоставлении с образцом, type в объявлении псевдонима типа вроде type Point = tuple[float, float]. В остальных местах это обычные имена, поэтому старый код с переменной match не ломается. В новом коде такие имена лучше не выбирать.
Кириллица в именах
Python 3 разрешает буквы любого алфавита, так что имя_1 технически корректно. На практике используйте латиницу: русская с и латинская c выглядят одинаково, и такую ошибку очень трудно найти.
Затенение встроенных имен
Слова list, str, sum, id, input не являются ключевыми, поэтому Python позволит присвоить им значение. После list = [1, 2] вызов list("abc") выдаст TypeError: 'list' object is not callable. Выбирайте имена вроде items или total.
Соглашения об именах по PEP 8
| Что называем | Стиль | Пример |
|---|---|---|
| Переменная, функция, модуль | snake_case | user_name, get_total() |
| Класс, исключение | CapWords | OrderItem, PaymentError |
| Константа | UPPER_CASE | MAX_RETRIES |
| Внутреннее имя | подчеркивание в начале | _cache |
| Конфликт с ключевым словом | подчеркивание в конце | class_, from_ |
Для отступов PEP 8 требует 4 пробела. Табуляцию и пробелы смешивать нельзя: Python 3 в таком случае выдаст TabError. Настройте редактор так, чтобы клавиша Tab вставляла пробелы.
Хорошее имя отвечает на вопрос, что хранится в переменной, а не как оно получено. Имена из одной буквы допустимы только для счетчиков коротких циклов и координат. Функции называйте глаголами (load_config, send_report), логические переменные формулируйте как вопрос (is_active, has_access).
Частые вопросы
Ответы на типичные вопросы читателей, которые помогут избежать частых ошибок.
Сколько ключевых слов в Python 3.13?
35 обычных ключевых слов и 4 мягких: _, case, match, type. Точный список для вашей версии выводит keyword.kwlist и keyword.softkwlist.
Являются ли тройные кавычки комментарием?
Нет, это строковый литерал. Если он стоит первой строкой функции, класса или модуля, он становится docstring и доступен через __doc__. В остальных местах такая строка просто создается и отбрасывается. Для обычных комментариев используйте # на каждой строке.
Можно ли писать несколько инструкций в одной строке?
Можно через точку с запятой: a = 5; b = 6. PEP 8 так делать не рекомендует, потому что код хуже читается и сложнее отлаживается. Одна инструкция на строку остается стандартом.
Что делать с ошибкой IndentationError?
Проверьте, что после строки с двоеточием (if, for, def) следующая строка сдвинута, а все строки одного блока имеют одинаковый отступ. Включите в редакторе отображение пробелов и табуляций, так смешанные отступы видны сразу.