# How to test for logic operator precedence

While coding in Python, I realized I couldn't remember which is evaluated first:

and (the logical conjunctive operator),
or (the logical disjunctive operator).

Of course, I could've used parentheses (or looked it up), but I wanted to try to find out for myself. I tried endless combinations of False, True, and, and or but could not figure it out.

Given a language with unknown operator precedence, where operators of equal precedence evaluate left-to-right, find a way to conclusively determine whether the logical conjunction or the logical disjunction is evaluated first.

You can only use False, True, and, and or in your answer.

Note: You may assume that or and and definitely have different precedence.

• Are we assuming operator precedence either (1) evaluates all and left to right and then all or left to right, or (2) evaluates all or left to right and then all and left to right? Apr 30 '18 at 1:35
• @noedne Yes. Otherwise they'd have the same precedence Apr 30 '18 at 1:37
• @noedne edited. Apr 30 '18 at 2:34
• Nice edit. Do we also assume that and and or have different precedence? Apr 30 '18 at 2:42
• Yes, as stated (slightly unclearly) in the question. Let me clarify that. Apr 30 '18 at 2:51

True or True and False
Giving True means 'and' then 'or'. Giving False means 'or' then 'and'.
False and True or True
Also use this to test if the precedence is same. If both tests are resulting different value (first test gives False and second test gives True) then the precedence is same.