Структура программы на языке Python
Другой способ понять роль инструкций состоит в том, чтобы вновь вернуться к иерархии понятий, представленной в главе 4, в которой рассказывалось о встроенных объектах и выражениях, управляющих ими. Эта глава рассматривает следующую ступень иерархии:
- Программы делятся на модули.
- Модули содержат инструкции.
- Инструкции состоят из выражений.
- Выражения создают и обрабатывают объекты.
Таблица основных инструкций
Операция присваивания
Операция распаковки последовательностей
Имейте в виду, что расширенная операция распаковывания последовательностей – это всего лишь удобство. Мы можем добиться того же эффекта, используя явно операции индексирования и извлечения среза (и фактически эту альтернативу придется использовать в Python 2.X), но расширенная инструкция распаковывания выглядит компактнее. Типичный прием разбиения последовательности «первый, остаток», например, можно реализовать тем или иным способом, но операция извлечения среза более трудозатратна:
>>> seq
[1, 2, 3, 4]
>>> a, *b = seq # Первый, остаток
>>> a, b
(1, [2, 3, 4])
>>> a, b = seq[0], seq[1:] # Первый, остаток: традиционная реализация
>>> a, b
(1, [2, 3, 4])
Использование присваивания в циклах for
for (a, *b, c) in [(1, 2, 3, 4), (5, 6, 7, 8)]:
…
При таком использовании в каждой итерации интерпретатор будет просто при-
сваивать очередной кортеж значений кортежу переменных. На первом прохо-
де, например, будет выполнено присваивание, как если бы оно было реализова-
но в виде выражения:
a, *b, c = (1, 2, 3, 4) # Переменная b получит значение [2, 3]
Комбинированные инструкции присваивания в Python
Начиная с версии Python2.0, в языке появился набор дополнительных инструкций присваивания, перечисленных в табл. 11.2. Известные как комбинированные инструкции присваивания и заимствованные из языка C, они по существу являются лишь более компактной формой записи. Они комбинируют в себе выражение и операцию присваивания. Например, следующие две формы записи практически эквивалентны:
X = X + Y # Традиционная форма записи
X += Y # Новая, комбинированная форма записи