**New course!**Every coder should learn

**Generative AI!**

+ 1

# Booleans

x = True y = False z = False x or y and z == True. Why is 'and' treated before 'or' ? Is this a python thing? Help me understand.

5 Answers

+ 3

'and' is before 'or' in every programming language. There is an order of operations just like in math.
https://en.m.wikipedia.org/wiki/Order_of_operations#Programming_languages

+ 2

arr = [1, True, 'a', 2]
print('a' in arr in arr)
Output is false. While:
print(('a': in arr) in arr)
Output is true
Schindlabua Henri Evjen Is python right to left without brackets for 'in' operations?

+ 1

Even cooler: `and` is like multiplication and `or` is like addition in a pretty strict mathematical sense.
true behaves a bit like 1, false like 0:
true and true == true
1 * 1 == 1
false and true == false
0 * 1 == 0
false or false == false
0 + 0 == 0
false or true == true
0 + 1 == 1
(with 1+1 we have to squint a little to see it.)
And of course multiplication goes before addition :)

+ 1

I don't write much python, but looks like it. Right-associativity is not terribly uncommon though. Think of `a ** b ** c`, or in other languages, `a ? b : c ? d : e` or `a = b = c`.

0

Thanks. Cool eye opener. *Not every programming language though. There are exceptions.