Nov-21-2019, 04:35 PM
(This post was last modified: Nov-21-2019, 04:36 PM by bloomyhood.)
Can anybody explain why:
'b' in 'abc' == 'a' in 'abc'
is
False
Thank you
'b' in 'abc' == 'a' in 'abc'
is
False
Thank you
boolean
|
Nov-21-2019, 04:35 PM
(This post was last modified: Nov-21-2019, 04:36 PM by bloomyhood.)
Can anybody explain why:
'b' in 'abc' == 'a' in 'abc' is False Thank you
Must have something to do with the "in" keyword
print('b' in 'abc' == 'a' in 'abc') print(('b' in 'abc') == 'a' in 'abc') print('b' in 'abc' == ('a' in 'abc')) print(('b' in 'abc') == ('a' in 'abc'))
It has to do with chaining comparison operators.
So what's really happens is: >>> 'b' in 'abc' == 'a' in 'abc' False >>> # The chaining is >>> ('b' in 'abc') and ('abc' == 'a') and ('a' in 'abc') False >>> # After ('abc' == 'a') the result is False and last ('a' in 'abc') is not evaluated >>> ('abc' == 'a') FalseShould avoid to use == like this as it can give unexpected result.If most use it so dos () break the chaining.>>> ('b' in 'abc') == ('a' in 'abc') True |
|