18 lines
1.0 KiB
Markdown
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.
|