Python's Logical Operator AND

BubbleMonster picture BubbleMonster · Aug 12, 2013 · Viewed 79k times · Source

I'm a little confused with the results I'm getting with the logical operators in Python. I'm a beginner and studying with the use of a few books, but they don't explain in as much detail as I'd like.

here is my own code:

five = 5
two = 2

print five and two

>> 2

It seems to be just outputting the two variable.

five = 5
two = 2
zero = 0

print five and two and zero

So, I added another variable integer. Then I printed and got the following output:

>> 0

What is going on with Python in the background? Why isn't the output something like 7 or 5, 2.

Answer

tdelaney picture tdelaney · Aug 12, 2013

Python Boolean operators return the last value evaluated, not True/False. The docs have a good explanation of this:

The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned.