Язык программирования Python



Выражения


В современных языках программирования принято производить большую часть обработки данных в выражениях. Синтаксис выражений у многих языков программирования примерно одинаков. Синтаксис выражений Python не удивит программиста чем-то новым. (Разве что цепочечные сравнения могут приятно порадовать.)

Приоритет операций показан в нижеследующей таблице (в порядке уменьшения). Для унарных операций x обозначает операнд. Ассоциативность операций в Python - слева-направо, за исключением операции возведения в степень (**), которая ассоциативна справа налево.

ОперацияНазвание
lambdaлямбда-выражение
orлогическое ИЛИ
andлогическое И
not xлогическое НЕ
in, not inпроверка принадлежности
is, is notпроверка идентичности
<,<=,>,>=,!=,==сравнения
|побитовое ИЛИ
^побитовое исключающее ИЛИ
&побитовое И
<<, >>побитовые сдвиги
+, -сложение и вычитание
*, /, %умножение, деление, остаток
+x, -xунарный плюс и смена знака
~xпобитовое НЕ
**возведение в степень
x.атрибутссылка на атрибут
x[индекс]взятие элемента по индексу
x[от:до]выделение среза (от и до)
f(аргумент,...)вызов функции
( ... )скобки или кортеж
[ ... ]список или списковое включение
{кл:зн, ...}словарь пар ключ-значение
`выражения`преобразование к строке (repr)

Таким образом, порядок вычислений операндов определяется такими правилами:

  1. Операнд слева вычисляется раньше операнда справа во всех бинарных операциях, кроме возведения в степень.
  2. Цепочка сравнений вида a < b < c ... y < z фактически равносильна: (а < b) and (b < c) and ... and (y < z).
  3. Перед фактическим выполнением операции вычисляются нужные для нее операнды. В большинстве бинарных операций предварительно вычисляются оба операнда (сначала левый), но операции or и and , а также цепочки сравнений вычисляют такое количество операндов, которое достаточно для получения результата. В невычисленной части выражения в таком случае могут даже быть неопределенные имена. Это важно учитывать, если используются функции с побочными эффектами.
  4. Аргументы функций, выражения для списков, кортежей, словарей и т.п.


    Содержание  Назад  Вперед