input() 函数接受一行标准输入,返回字符串。因此你输入的并不是整型值 1,而是字符串值 "1"。
bool() 函数接受一个任意类型的值,返回 True 或 False。bool() 的返回值很好记忆,只需要记住“空”会被返回 False,其它都为 True。我举几个例子解释一下这一套规则:
输入字符串 "0",输出是什么?字符串什么时候为空?我们只管""叫空字符串,带一个空格都不行。所以"0"的输出值为 True。
那么数值 0 呢?此时 0 就是空了,所以输出值才是 False。1 或者 -1 等等都是 True。还有空元组 (),空列表 [] 和空字典 {} 等等都是 False。
或者背 ''、""、''''''、""""""、0、()、[]、{}、None、0.0、0L、0.0+0.0j、False 对应 False,其它都对应 True。
x = bool(input())
print(x)
#输入0,输出是True.
方案:
先转化为int。
x = int(input())
print(bool(x))
#输入0,输出False