如何将String转换为布尔值?例如:
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'?
答案 0 :(得分:3)
我认为您正在寻找eval
:
>>> eval('( False ) and ( False or True ) and ( True )')
False
注意:不要将str
用作变量名称;它会影响内置的Python。
答案 1 :(得分:2)
您可以使用将适当字符串转换为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
这样您也可以分析各种用户输入。