[issue44758] Why " True != 3 in [3] " is True?

Steven D'Aprano report at bugs.python.org
Wed Jul 28 05:10:48 EDT 2021


Steven D'Aprano <steve+python at pearwood.info> added the comment:

Hi Antel, thank you for your submission but this is not a bug. This is a bug tracker for reporting bugs, not a help desk to ask for help understanding code. There are many forums where you can ask for help, I suggest that you could try places like the Python-List mailing list or Reddit.

https://mail.python.org/mailman/listinfo/python-list

https://www.reddit.com/r/learnpython/


The three code snippets you show are all correct.

In the first case, you are comparing True != 3, which is True, and then testing whether True is in [3], which it is not.

In the second you compute (3 in [3]), which is True, then test True != True, which is False.

Lastly you do a *chained comparison* `True != 3 in [3]` which is equivalent to `(True != 3) and (3 in [3])` which is True.

----------
nosy: +steven.daprano
resolution:  -> not a bug
stage:  -> resolved
status: open -> closed

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue44758>
_______________________________________


More information about the Python-bugs-list mailing list