Bob*_*sma 4 python boolean-expression
我正在尝试基于(不可预测的)用户输入构建布尔表达式.我发现我正在构建一个看起来合适但不起作用的字符串.我看过python.org,Google和Stackoverflow,但在这里找不到什么问题.
代码示例:
print stringDing
newVariable = stringDing.replace('False','0')
print newVariable
print bool(newVariable)
Run Code Online (Sandbox Code Playgroud)
输出来自:
False or False or False
0 or 0 or 0
True
Run Code Online (Sandbox Code Playgroud)
然而,当字符串粘贴到python中时,python会按预期响应:
>>> False or False or False
False
Run Code Online (Sandbox Code Playgroud)
我认为我需要将其构建为一个字符串,因为用户可以添加"OR","AND"和括号,我需要在适当的位置放入.
如何进行?
解释非空字符串bool将始终评估为True.即:
print bool("False") # True
print bool("0") # True
Run Code Online (Sandbox Code Playgroud)
这是因为str是一个可迭代的对象(例如list,set或dict).True如果它们非空,则认为所有可迭代对象都是.A str是可迭代的,迭代其字符.这很有用,例如,如果您想测试字符串s是否为空.在这种情况下你可以写:
if s:
# do something with non-empty string s.
Run Code Online (Sandbox Code Playgroud)
但是,如果要评估字符串表示的表达式,请调用eval:
print eval("False") # False
print eval("0") # 0
print bool(eval("0")) # False
Run Code Online (Sandbox Code Playgroud)