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