我们有这个python代码。但是,即使在条件中我也没有提到它为什么打印0为假。有解释吗?
a=input("Enter value")
if(a=='true')or(a=='false'):
print(int(a=='true'))
else:
print('Error')
答案 0 :(得分:1)
因为:
print(int(a=='true'))
如果a
是false
,则变为:
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。