Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python "and" operator with ints

Tags:

python

boolean

What is the explanation for this behavior in Python?

a = 10
b = 20
a and b # 20
b and a # 10

a and b evaluates to 20, while b and a evaluates to 10. Are positive ints equivalent to True? Why does it evaluate to the second value? Because it is second?

like image 532
Mike Scott Avatar asked Feb 15 '12 18:02

Mike Scott


1 Answers

The documentation explains this quite well:

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.

And similarly for or which will probably be the next question on your lips.

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

like image 94
David Heffernan Avatar answered Oct 14 '22 01:10

David Heffernan