Выражение - это конструкция, обладающая значением. Составными элементами выражений являются значения, объединённые при помощи операций. Операции можно поделить на группы по общему назначению и приоритету. Всего можно выделить четыре групп приоритетов, обозначенных цифрами от 4 (низший) до 1.
ddd
ddd.ddd
True
или False
Name[expression]
Name(expressionlist)
или Name()
В эту группу попадают операции < <= > >=
. Операции упорядочивания обладают четвёртым (низшим) приоритетом и могут упорядочивать числовые значения.
В эту группу попадают операции = <>
. Операции сравнения обладают четвёртым (низшим) приоритетом и могут сравнивать только числовые значения. Для сравнения булевых величин следует использовать операцию xor
, а вещественные значения проверять на равенство или неравенство некорректно из-за накапливающихся в ходе расчётов погрешностей. В таких случаях следует использовать оценку модуля разности - если она меньше некоторого значения, то считать числа равными. Тем не менее, операция сравнения разрешена как для целых, так и для вещественных чисел, хотя в последнем случае её применение вызывает появление предупреждения.
В эту группу попадают операции + - * / div mod
. Операции сложения обладают третьим приоритетом, остальные операции обладают вторым приоритетом. Операции +
и -
также могут использоваться, как унарные операции с третьим приоритетом - первая не меняет значения операнда, а вторая изменяет знак операнда на противоположный.
Операции + - * /
оперируют с числовыми значениями. Результатом операции /
всегда является вещественное значение, а остальные операции возвращают целое значение, если оба операнда целые, а иначе - вещественное значение.
Операции div и mod
оперируют с целыми числами и возвращают результат деления нацело и остаток от деления нацело. В обоих случаях результат - целое число.
В эту группу попадают операции not and or xor
. Операция отрицания обладает первым приоритетом, операция and обладает вторым приоритетом, остальные две операции обладают третьим приоритетом.
Операции | Приоритет |
---|---|
not | высший |
* / div mod and | второй |
+ - or xor | третий |
= <> < > <= >= | четвёртый |