question about True values

skip at skip at
Wed Oct 25 21:14:48 CEST 2006

    John> I'm a little confused. Why doesn't s evaluate to True in the first
    John> part, but it does in the second? Is the first statement something
    John> different?

    >>> s = 'hello'
    >>> s == True
    >>> if s:
    ...         print 'hi'

s is not equal to the boolean object True, but it also doesn't evaluate to
the string class's "nil" value.  Each of the builtin types has such an
"empty" or "nil" value:

    string              ""
    list                []
    tuple               ()
    dict                {}
    int                 0
    float               0.0
    complex             0j
    set                 set()

Any other value besides the above will compare as "not false".


More information about the Python-list mailing list