= https://docs.python.org/2/library/stdtypes.html

5.3. ComparisonsÂ¶

Comparison operations are supported by all objects. They all have the same priority (which is higher than that of the Boolean operations). Comparisons can be chained arbitrarily; for example, x < y <= z is equivalent to x < y and y <= z, except that y is evaluated only once (but in both cases z is not evaluated at all when x < y is found to be false).

This table summarizes the comparison operations:

```
Operation Meaning
< strictly less than
<= less than or equal
> strictly greater than
>= greater than or equal
== equal
!= not equal (1)
is object identity
is not negated object identity
```

https://docs.python.org/3/library/stdtypes.html

4.2. Boolean Operations â€” and, or, notÂ¶

These are the Boolean operations, ordered by ascending priority:

```
Operation Result Notes
x or y if x is false, then y, else x (1)
x and y if x is false, then x, else y (2)
not x if x is false, then True, else False (3)
```

Notes:

1.This is a short-circuit operator, so it only evaluates the second argument if the first one is False.

2.This is a short-circuit operator, so it only evaluates the second argument if the first one is True.

3.not has a lower priority than non-Boolean operators, so not a == b is interpreted as not (a == b), and a == not b is a syntax error.