assistance-engine/docs/developer.avapframework.com/chapter9_27.md

18 lines
1.0 KiB
Markdown

## Comparisons
Unlike C, all comparison operations in Python have the same priority, which is lower than any arithmetic, shift, or bitwise operation. Also, unlike C, expressions like `a < b < c` have the conventional mathematical interpretation:
```javascript
comparison ::= or_expr (comp_operator or_expr)*
comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "!="
| "is" ["not"] | ["not"] "in"
```
Comparisons produce boolean values: True or False.
Comparisons can be arbitrarily chained, e.g., `x < y <= z` is equivalent to `x < y and y <= z` , except that `y` is evaluated only once.
Formally, if `a` , `b` , `c` , ..., `y` , `z` are expressions and `op1` , `op2` , ..., `opN` are comparison operators, then `a op1 b op2 c ... y opN z` is equivalent to `a op1 b and b op2 c and ... y opN z` , except that each expression is evaluated at most once.
Note that `a op1 b op2 c` does not imply any comparison between `a` and `c` , so, for example, `x < y > z` is perfectly legal.