Usage of the "==" operator for three objects
equality, operators, python
Solution
Python has chained comparisons, so these two forms are equivalent:
x == y == z
x == y and y == z
except that in the first, y is only evaluated once.
This means you can also write:
0 < x < 10
10 >= z >= 2
etc. You can also write confusing things like:
a < b == c is d # Don't do this
Beginners sometimes get tripped up on this:
a < 100 is True # Definitely don't do this!
which will always be false since it is the same as:
a < 100 and 100 is True # Now we see the violence inherent in the system!
Problem
Is there any computational difference between these two methods of checking equality between three objects? I have two variables: `x` and `y`. Say I do this: ``` >>> x = 5 >>> y = 5 >>> x == y == 5 True ``` Is that different from: ``` >>> x = 5 >>> y = 5 >>> x == y and x == 5 True ``` What about if they are `False`? ``` >>> x = 5 >>> y = 5 >>> x == y == 4 False ``` And: ``` >>> x = 5 >>> y = 5 >>> x == y and x == 4 False ``` Is there any difference in how they are calculated? In addition, how does `x == y == z` work? Thanks in advance!