Я только что нашел это:
a = (None,)
print (a is True)
print (a is False)
print (a == True)
print (a == False)
print (a == None)
print (a is None)
if a : print "hello"
if not a : print "goodbye"
который производит:
False
False
False
False
False
False
hello
Таким образом, ни один, ни равный True или False, но действует как истина в выражении if.
Почему?
Обновление:
На самом деле, я только что понял, что это не так неясно, как я думал. Я получаю тот же результат для a = 2 (хотя и не для a = 0 или = 1, которые считаются равными False и True соответственно)