and or or surprise - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: and or or surprise (/thread-34045.html) |
and or or surprise - hakelm - Jun-21-2021 Trying to teach my grandchildren (and myself) python I slide into surprises all the time. The last one: >>> x=3 >>> y=5 >>> x and y 5 >>> y and x 3 >>> x or y 3 >>> y or x 5 >>> x='7' >>> x and y 5 >>> y and x '7' >>> type(x and y) <class 'int'> >>> type(y and x) <class 'str'>You will get similar results with or. So what does and or or really mean, what kind of results can it deliver, when can I expect an exception? Thanks in advance for any tip H RE: and or or surprise - buran - Jun-21-2021 What is the surprise for you? From the docs Quote:The expression Also, this part of the docs Also check Truth Value testing RE: and or or surprise - hakelm - Jun-21-2021 Thanks for pointing me to the documentation that I should have read. The surprise for my rigid mind is that these normally commutative boolean operators can depending on order return any type or value. H RE: and or or surprise - Gribouillis - Jun-21-2021 In Python they are binary operators but nor boolean, nor commutative. The point is they are much more useful this way. Unfortunately few rules are straightforward when one learns a new language. There is an incompressible amount of design choices to get accustomed to. |