如何在Python中将字符串布尔值转换为IF语句

如何在Python中将字符串布尔值转换为IF语句,python,boolean,Python,Boolean,我试图创建一个更复杂的布尔函数,我将在函数之间使用它。以下是简化的问题: a = "1 == 2" if a: print ("it is not working") else: print ("it worked") 出[1]: 它不起作用 基本上,我试图将函数作为字符串传递,然后在布尔值中使用它,但结果总是如此 我还尝试: 布尔(a) Out[1]:True尝试 “1==2”是一个字符串。。。任何不为空的字符串在python中都是“truthy”。。。所以这就是为什么它总

我试图创建一个更复杂的布尔函数,我将在函数之间使用它。以下是简化的问题:

a = "1 == 2"

if a:
    print ("it is not working")
else:
    print ("it worked")
出[1]:

它不起作用

基本上,我试图将函数作为字符串传递,然后在布尔值中使用它,但结果总是如此

我还尝试:

布尔(a)

Out[1]:True

尝试


“1==2”是一个字符串。。。任何不为空的字符串在python中都是“truthy”。。。所以这就是为什么它总是回归真实。。。如果希望1==2作为布尔值计算,请删除字符串周围的引号。如果字符串不是无,则该字符串始终为真。这听起来像是个XY问题。通常情况下,它不鼓励这样一种方法,即您要求值字符串。然而,如果你在它上面的陈述,你应该查找
ast.literal\u eval
Python中的空字符串没有被计算为false吗?@JordanSimba是的,对不起,这就是我的意思,字符串总是true,除非它是空的。试试eval(a)。对于a=“1==2”,eval(a)=False。对于a=“1==1”,eval(a)=True。
a = "1 == 2"
eval(a)
>>>False

a = "1 == 1"
eval(a) 
>>> True