Linked Questions

Popular Questions

I was doing a leetcode question while I had the following python code:

pairs = [(1, 3)]
addend = 3
sum = 4
if ((addend, sum - addend) or (sum - addend, addend)) in pairs:
    print("Pair exists")

The expected output when I ran this code should be

Pair exists

But instead this prints nothing, which I assume means ((addend, sum - addend) or (sum - addend, addend)) evaluates to False.

Then I removed the outer parentheses and made it

if (addend, sum - addend) or (sum - addend, addend) in pairs:
        print("Pair exists")

This gave me the right output.

My second guess was this pair of redundant parentheses actually calculates ((addend, sum - addend) or (sum - addend, addend)), so I put ((1, 3) or (3, 1)) in the Python3.7 console directly and that's the output

>>> ((1, 3) or (3, 1))
(1, 3)

But still this won't make sense since (1, 3) is indeed in pairs.

Could anybody explain why putting these parentheses invalidates the statement?

Related Questions