Member-only story
Careful with chained operations
2 min readSep 21, 2024
Let’s break down the expressions one by one:
1. (False == False) in [False]
(False == False)
: This evaluates toTrue
, becauseFalse
is equal toFalse
.True in [False]
: Now the expression becomesTrue in [False]
. This checks ifTrue
is in the list[False]
.- The result is
False
because the list only containsFalse
, notTrue
.
So, the overall result of (False == False) in [False]
is False
.
2. False == (False in [False])
(False in [False])
: This checks ifFalse
is in the list[False]
.- This is
True
becauseFalse
is indeed in[False]
. False == True
: Now the expression becomesFalse == True
.- This is
False
becauseFalse
is not equal toTrue
.
So, the overall result of False == (False in [False])
is False
.
3. False == False in [False]
This is a chained comparison, equivalent to:
(False == False) and (False in [False])
False == False
: This isTrue
becauseFalse
is equal toFalse
.False in [False]
: This isTrue
becauseFalse
is in the list[False]
.
So, the overall result of False == False in [False]
is True
.
Summary of Results:
(False == False) in [False]
:False
False == (False in [False])
:False
False == False in [False]
:True
Each expression behaves differently based on how the logical comparisons and list membership are evaluated.