如何在 Python 中将字符串转换为布尔值?此尝试返回 True
:
>>> bool("False")
True
原文由 Joan Venge 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在 Python 中将字符串转换为布尔值?此尝试返回 True
:
>>> bool("False")
True
原文由 Joan Venge 发布,翻译遵循 CC BY-SA 4.0 许可协议
采用:
bool(distutils.util.strtobool(some_string))
真值为 y、yes、t、true、on 和 1; false 值为 n、no、f、false、off 和 0。如果 val 是其他值,则引发 ValueError。
请注意 distutils.util.strtobool()
返回整数表示,因此需要用 bool()
包装以获得布尔值。
鉴于 distutils 将不再是标准库的一部分,这里是 distutils.util.strtobool()
的代码(参见 源代码)。
def strtobool (val):
"""Convert a string representation of truth to true (1) or false (0).
True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values
are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if
'val' is anything else.
"""
val = val.lower()
if val in ('y', 'yes', 't', 'true', 'on', '1'):
return 1
elif val in ('n', 'no', 'f', 'false', 'off', '0'):
return 0
else:
raise ValueError("invalid truth value %r" % (val,))
原文由 jzwiener 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.5k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
4 回答3.9k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
2 回答500 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
真的,您只需将字符串与您期望接受的表示 true 的字符串进行比较,因此您可以这样做:
或者检查一大堆值:
使用以下内容时要小心:
空字符串评估为
False
,但其他所有字符串评估为True
。所以这不应该用于任何类型的解析目的。