2 > 5 and ((10 != 10 or 5 >= 5) or .5 <= 1/2)
This expression is supposed to print false and it does, but what is the explanation behind it?
Boolean expressions are evaluated from left to right. So in this case because the first expression 2 > 5 is false and the operator following that expression is AND then we assume the entire line evaluates to false (because False AND anything else is still false so there is no need to evaluate the entire line)