From d3a25fa14ea0d484aa556053ea0ce2cfcff7a8c0 Mon Sep 17 00:00:00 2001 From: jeffreykennethli Date: Fri, 3 Jun 2022 10:15:21 -0400 Subject: [PATCH] Update link and add parenthesis to chained operators section --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b5ee9d7..5de07cc 100644 --- a/README.md +++ b/README.md @@ -384,15 +384,15 @@ False #### 💡 Explanation: -As per https://docs.python.org/3/reference/expressions.html#membership-test-operations +As per https://docs.python.org/3/reference/expressions.html#comparisons > 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. While such behavior might seem silly to you in the above examples, it's fantastic with stuff like `a == b == c` and `0 <= x <= 100`. * `False is False is False` is equivalent to `(False is False) and (False is False)` -* `True is False == False` is equivalent to `True is False and False == False` and since the first part of the statement (`True is False`) evaluates to `False`, the overall expression evaluates to `False`. -* `1 > 0 < 1` is equivalent to `1 > 0 and 0 < 1` which evaluates to `True`. +* `True is False == False` is equivalent to `(True is False) and (False == False)` and since the first part of the statement (`True is False`) evaluates to `False`, the overall expression evaluates to `False`. +* `1 > 0 < 1` is equivalent to `(1 > 0) and (0 < 1)` which evaluates to `True`. * The expression `(1 > 0) < 1` is equivalent to `True < 1` and ```py >>> int(True)