繁体   English   中英

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

[英]Why does Python evaluate strings/numbers as True in if statements yet myNumber == True returns False?

以下将打印'ok'

if 5:
   print('ok')

然而当我这样做时:

print(5 == True) 

输出为False

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

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

if只检查表达式的bool (参见“真值测试” )是否为True如果标识等于True

那么if实际测试的是:

>>> bool(5) == True
True

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM