如何将字符串转换为布尔值?例如:
str = "False and False or True and True"
str = "( "+str+" )"
str = str.replace("and",") and (")
退货
str == '( False ) and ( False or True ) and ( True )'
如何执行
str
,结果为“False”?
eval
:
>>> eval('( False ) and ( False or True ) and ( True )')
False
注释:
eval
,请参阅例如为什么使用“eval”是一种不好的做法? 和str
作为变量名;它隐藏了 Python 内置函数。您可以使用将适当的字符串转换为 True 和 False 的函数
def str2bool(self, v): # Note the self to allow it to be in a class
return v.lower() in ('yes', 'true', 't', '1', 'yea', 'verily') # lower() is a method
这也将允许您分析各种用户输入。