> This is true. I have written 0 as false in C so many times. But > clearly for me times have changed... I now look at numbers as a thing > in their own special class not to be confused as truth-values. (So much > so that I fell for this.) But I confess I still think of numbers as all > TRUE. (Even zero!)
Also remember that in Python bool is a subclass of int: >>> isinstance(False, int) True >>> 0 == False True >>> 1 == True True >>> ["A", "B"][False] 'A' >>> ["A", "B"][True] 'B' So if you're trying to do something slightly different based on the type of the input you might fall into this trap if isinstance(foo, float): do float stuff elif isinstance(foo, int): do int stuff elif isinstance(foo, bool): this line will never run because it would have triggered the int line -- https://mail.python.org/mailman/listinfo/python-list