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
    False
    >>> if s:
    ...         print 'hi'
    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".

Skip
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to