True/False value testing

Peter Otten __peter__ at web.de
Thu Jan 7 05:48:41 EST 2016


ast wrote:

> Hello
> 
> For integer, 0 is considered False and any other value True
> 
>>>> A=0
>>>> A==False
> True
>>>> A==True
> False
>>>> A=1
>>>> A==False
> False
>>>> A==True
> True
> 
> It works fine

But not the way you think:

>>> 0 == False
True
>>> 1 == True
True
>>> 2 == True
False
>>> 2 == False
False

0 equals False, 1 equals True, and any other integer equals neither, but 
"is true in a boolean context", i. e.

>>> if 42: print("42 considered true")
... 
42 considered true

> For string, "" is considered False and any other value True,
> but it doesn't work

In a similar way there is no string that equals True or False, but
the empty string "" is considered false in a boolean context while all other 
strings are considered true:

>>> bool("")
False
>>> bool("whatever")
True

>>>> A = ""
>>>> A==False
> False
>>>> A==True
> False
>>>> A = 'Z'
>>>> A==False
> False
>>>> A==True
> False
> 
> 
> What happens ???
> 
> thx





More information about the Python-list mailing list