Python 3.x bool(输入(";Enter:";)总是返回True

Python 3.x bool(输入(";Enter:";)总是返回True,python-3.x,boolean,Python 3.x,Boolean,您还可以将字符串转换为布尔值,只要字符串包含 正确或错误(无其他)。例如: status = bool(input('OK to proceed: ')) print(status) print(type(status)) 当我们运行此输出时: OK to proceed: False True <class 'bool'> OK继续:False 真的 即使我们输入0或False,它仍然返回True。这是为什么?与其他Python序列一样,字符串是truthy(因此bool(t

您还可以将字符串转换为布尔值,只要字符串包含 正确或错误(无其他)。例如:

status = bool(input('OK to proceed: '))
print(status)
print(type(status))
当我们运行此输出时:

OK to proceed: False
True
<class 'bool'>
OK继续:False
真的

即使我们输入0或False,它仍然返回True。这是为什么?

与其他Python序列一样,字符串是truthy(因此
bool(the_string)
True
),如果它是非空的。只有空字符串转换为
False

truthy = bool("any content")
falsey = bool("")

如果您正在阅读一篇教程,其中建议在
input()
的提示下键入
False
将获得布尔值
False
,那么可能是为Python 2编写的,其中
input
eval(input())等效
在Python 3中。这不是您通常想要的,因为它允许用户输入文本来运行任何可以放入表达式中的Python代码(包括具有副作用的表达式,如删除硬盘上的所有文件)。

与其他Python序列一样,字符串是真实的(因此
bool(the_字符串)
True
),如果它不是空的。只有空字符串转换为
False

truthy = bool("any content")
falsey = bool("")

如果您正在阅读一篇教程,其中建议在
input()
的提示下键入
False
将获得布尔值
False
,那么可能是为Python 2编写的,其中
input
eval(input())等效
在Python 3中。这不是您通常想要的,因为它允许输入文本的用户运行任何可以放入表达式中的Python代码(包括有副作用的表达式,如删除硬盘上的所有文件)。

使用
status=input('OK to containment:')。lower()=“OK”
insteaduse
status=input(“确定继续:”).lower()=“确定”
instead有意义,谢谢有意义,谢谢