Открыть сервисСервис

Синтаксис Python

Синтаксис Python — совокупность правил записи программ на языке программирования Python, определяющих допустимые конструкции, структуру операторов и порядок разбора исходного кода. Язык разработан Гвидо ван Россумом и впервые выпущен в 1991 году; его синтаксис отличается минимализмом и ориентирован на читаемость, что закреплено в философии языка (PEP 20 — «The Zen of Python»).

Общие принципы

Отступы и блоки кода

В отличие от большинства языков, использующих фигурные скобки, Python разделяет блоки кода отступами. Стандарт PEP 8 рекомендует отступ в 4 пробела; табуляция допустима, но не должна смешиваться с пробелами внутри одного файла. Операторы, входящие в один блок (тело функции, ветвление, цикл), должны иметь одинаковый отступ. Непоследовательное использование отступов вызывает ошибку IndentationError.

Разделение операторов

Операторы разделяются переводом строки; точка с запятой в конце оператора допустима, но не является обязательной и используется редко. Несколько операторов на одной строке через точку с запятой допустимы, но считаются плохим стилем. Длинные выражения могут разрываться с помощью круглых скобок, что позволяет продолжать операцию на следующей строке.

Комментарии и строки

Комментарии начинаются с символа # и продолжаются до конца строки. Многострочные строки записываются в тройных кавычках (""" или ''') и могут использоваться как docstring — строка документации, размещаемая в начале модуля, класса или функции.

Лексическая структура

Идентификаторы

Идентификаторы (имена переменных, функций, классов) начинаются с буквы или символа подчёркивания и могут содержать буквы, цифры и подчёркивание. Регистр значим: value и Value — разные идентификаторы. Зарезервированные слова (ключевые слова) не могут использоваться как имена переменных.

Ключевые слова

Ключевые слова Python не могут быть переопределены. Основные из них:

Ключевое словоНазначение
if, elif, elseусловные операторы
for, whileциклы
def, classопределение функций и классов
return, yieldвозврат значений
import, fromимпорт модулей
try, except, finallyобработка исключений
withуправление контекстом
lambdaанонимные функции
True, False, Noneлогические и пустые значения
and, or, not, in, isоперации и сравнения

Литералы

Числовые литералы: целые (42), вещественные (3.14), комплексные (1+2j). Строковые литералы записываются в одинарных или двойных кавычках; для многострочных — в тройных. Строки с префиксом f (f-строки, введены в Python 3.6) позволяют подставлять выражения: f"Сумма: {a + b}".

Основные конструкции

Присваивание

Оператор = присваивает значение. Поддерживаются множественное присваивание (a, b = 1, 2), обмен значениями (a, b = b, a) и распаковка кортежей. Усилённые операторы: +=, -=, *=, /=, //=, %=, **=, >>=, <<=, &=, ^=, |=.

Условные операторы

``python if условие1: ... elif условие2: ... else: ... ``

Условие записывается без скобок; логические операции — and, or, not.

Циклы

for перебирает элементы последовательности или итератора; while повторяет блок, пока условие истинно. Управляющие операторы break, continue и else (ветка else у цикла выполняется, если не было break) завершают конструкцию.

Функции

Определяются ключевым словом def; параметры и значения по умолчанию, *args и **kwargs для передачи произвольного числа аргументов. Аннотации типов (введены в Python 3.5) записываются через двоеточие: def сумма(a: int, b: int) -> int:.

Классы

Определяются через class ИмяБазовогоКласса:; поддерживается множественное наследование. Метод __init__ — конструктор; специальные (магические) методы определяют поведение объектов (__str__, __len__, __getitem__).

Обработка исключений

``python try: ... except ТипИсключения as ошибка: ... finally: ... ``

Исключения — объекты классов, наследуемых от BaseException; raise выбрасывает исключение.

Контекстные менеджеры

Оператор with гарантирует выполнение метода __exit__ (закрытие файла, освобождение ресурса) даже при исключении.

Декораторы и генераторы

Декоратор — функция, оборачивающая другую функцию, записывается с помощью @ перед определением. Генераторы создаются функцией с yield и возвращают итератор, вычисляющий значения по требованию; yield from делегирует итерацию вложенному итератору.

Синтаксис Python 3.10+: матч-оператор

В Python 3.10 введён оператор match — структурное сопоставление по образцу:

``python match значение: case 0: ... case [x, y]: ... case _: ... ``

Стандарт оформления

PEP 8 — основной документ, описывающий соглашения по оформлению кода: именование переменных (snake_case для функций и переменных, CamelCase для классов), длина строки (рекомендуется не более 79 символов), пробелы вокруг операторов.

Источники

  • PEP 8 — Style Guide for Python Code
  • PEP 20 — The Zen of Python
  • PEP 3100, PEP 3101, PEP 3102, PEP 3107, PEP 498, PEP 634
  • Ван Россум Г., Варшамов Р., Сампсон Дж. «Python. Справочник»
  • Лутц М. «Изучаем Python»
  • Документация Python: раздел «The Python Language Reference»
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru