Python为假打印0,但是在此代码中

时间:2019-06-24 16:26:33

标签: python python-3.x if-statement boolean

我们有这个python代码。但是,即使在条件中我也没有提到它为什么打印0为假。有解释吗?

a=input("Enter value")
if(a=='true')or(a=='false'):
    print(int(a=='true'))
else:
    print('Error')

3 个答案:

答案 0 :(得分:1)

因为:

print(int(a=='true'))

如果afalse,则变为:

print(int('false'=='true'))

比较结果为False。所以:

print(int(False))

现在,int(False)为0-由于整数和布尔在python中的工作方式。 这样您就会得到:

print(0)

因此将打印0

有关int(False)为什么为0的更多详细信息,请参见:Is False == 0 and True == 1 in Python an implementation detail or is it guaranteed by the language?

答案 1 :(得分:0)

始终注意:

将布尔值转换为整数时,它返回0或1

1 代表True

0 代表False

答案 2 :(得分:0)

>>> False == 0
True
>>> True * 2
2
>>> 42 * False
0

将False视为值为0(且True为1)的内置变量。它们未进行任何转换, 分别为0和1。