Python中的布尔表达式还是字符串?始终返回“True”

2024-10-01 11:35:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图建立一个布尔表达式,基于(不可预测的)用户输入。我发现我正在构建一个看起来正常但不起作用的字符串。我看过python.org网站,Google和Stackoverflow在这里找不到问题。在

代码示例:

    print stringDing
    newVariable = stringDing.replace('False','0')
    print newVariable
    print bool(newVariable)

由此产生的输出:

^{pr2}$

但是,当字符串粘贴到python中时,python会按预期响应:

    >>> False or False or False
    False

我想我需要把它构建成一个字符串,因为用户可以添加'OR'、'AND'和括号,我需要在适当的地方放进去。在

如何继续?在


Tags: or字符串代码用户orgfalse示例表达式
2条回答

如果您想在python提示符下计算它的方式,只需执行eval(stringDing)。如果它是一个逻辑表达式,它将返回一个bool。在

将非空字符串解释为bool将始终计算为True。一、 电子邮箱:

print bool("False") # True
print bool("0") # True

这是因为str是一个iterable对象(例如listset或{})。所有iterable对象都被认为是True,如果它们不是空的。str是一个iterable,它迭代其字符。这很有用,例如,如果您想测试字符串s是否为空。在这种情况下,你可以写下:

^{pr2}$

但是,如果要计算由字符串表示的表达式,请调用eval

print eval("False") # False
print eval("0") # 0
print bool(eval("0")) # False

相关问题 更多 >