Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In Python, 0 == (1 or 0), returns False. Why doesn't it return True? [duplicate]

I'm trying to see if a function returns an integer who's value should be either a 1 or 0.

0 == (1 or 0)

0 is equal to 1 or 0, this sounds like it should be true, but it's not.

Why? And how to do what I'm looking to do correctly?

like image 974
JC123 Avatar asked Feb 04 '26 11:02

JC123


1 Answers

0 == (1 or 0) is parsed as this tree:

  ==
 /  \
0    or
    /  \
   1    0

1 or 0 results in 1, because or returns the first truthy value of the two operands (and 1 is truthy).

Afterwards, we're left with 0 == 1, which is obviously False.

What you want to do, is check whether 0 is one of those values which you can do through a sequence check: 0 in (0, 1)

like image 165
L3viathan Avatar answered Feb 07 '26 03:02

L3viathan