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

时间:2017-07-11 12:21:29

标签: python string boolean evaluation truthiness

以下内容将打印'ok'

if 5:
   print('ok')

然而,当我这样做时:

print(5 == True) 

输出为False

字符串也是如此。为什么呢?

2 个答案:

答案 0 :(得分:7)

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

if只检查表达式bool(如果"Truth value testing"True是否为True,如果标识等于if。< / p>

所以>>> bool(5) == True True 实际测试的是:

{{1}}

答案 1 :(得分:0)

True具有值1.如果设置True = 5(仅在python 2中),则等式变为True。 &#39;如果&#39;语句就像检查保护是不是0还是无,所以每个不是0的数字都可以输入第一个块。事实上,False的值为0。