[Tutor] What is the difference between checking false?

Dave Angel davea at davea.name
Sun Jun 16 04:28:05 CEST 2013


On 06/15/2013 10:21 PM, Jim Mooney wrote:
> On 15 June 2013 19:03, Dave Angel <davea at davea.name> wrote:
>> Why such a convoluted way of expressing yourself?
>
> I was demonstrating the parallelism, but let's just take one so I can
> unbefuddle meself ;')
>
> *** Python 3.3.2 32 bit (Intel)] on win32. ***
>>>> '' == False
> False
>>>> not ''
> True
>>>>
>
> Why the difference here?
>

There's no contradiction;  you're doing two entirely different things.

If you want to compare a non-boolean to False or True, expect it'll 
always be false.  They are different types.  (except for the int 
historical nonsense I mentioned earlier).

If you want to duplicate what the second expression does, you'll have to 
convert the str to a boolean, using the bool() function.[1]

 >>> bool("") == False
True

[1] Technically it's not a function but a "type" operation, or 
something.  But it quacks like a function, and I can't be bothered, at 
least not for this discussion.

-- 
DaveA


More information about the Tutor mailing list