为什么Python在if语句中将字符串/数字评估为True还是myNumber == True返回False?

tur*_*nip 4 python string evaluation boolean truthiness

以下将打印'ok':

if 5:
   print('ok')
Run Code Online (Sandbox Code Playgroud)

然而当我这样做时:

print(5 == True) 
Run Code Online (Sandbox Code Playgroud)

输出是False.

字符串也会发生同样的事情.为什么?

MSe*_*ert 7

你在这里测试不同的东西.

if只检查,如果bool表达式的(也参见"真值测试")是True不如果身份等于True.

那么实际测试的if是:

>>> bool(5) == True
True
Run Code Online (Sandbox Code Playgroud)