获取条件字符串返回值:True或False

时间:2013-01-30 08:56:05

标签: python

我有条件字符串,如下所示,

condition1 = "((2=2) or (3=1)) and (1=1)"
condition2 = "((2=3) or (1=1)) and (4=5)"

以上两个条件分别给出了输出True和False。

更多解释:

condition1工作为,

if ((2==2) or (3==1)) and (1==1):
      Return True
else:
      Return False

条件1的输出:True

condition2工作为,

if ((2==3) or (1==1)) and (4==5):
      Return True
else:
      Return False

condition2的输出:True

更新:

对不起朋友,

我有条件字符串,如上面的条件1和条件2。

我想在将条件解析为字符串时执行函数,并且该函数执行如if - else并返回布尔值

请帮助......

由于 Chintan

4 个答案:

答案 0 :(得分:3)

警告:使用evalpotentially dangerous,您永远不应该评估不受信任的输入(例如任何类型的用户输入)。

In [1]: condition1 = "((2=2) or (3=1)) and (1=1)"
   ...: condition2 = "((2=3) or (1=1)) and (4=5)"
   ...: 

In [2]: eval(condition1.replace('=','=='))
Out[2]: True

In [3]: eval(condition2.replace('=','=='))
Out[3]: False

答案 1 :(得分:2)

如果您正在询问如何评估条件并让python为您提供True或False输出,请查看python中的eval()函数。

答案 2 :(得分:1)

在python中,用于比较的运算符是==

无论哪种方式,如果这不能解决您的问题,您应该更清楚地说明我们应该帮助您的内容。

更新:您正在寻找的用于评估代表Python表达式的字符串的函数是eval()

答案 3 :(得分:1)

没有'eval'的解决方案

def condition(a,b,c):  
    if (((a[0]==a[1]) or (b[0]==b[1])) and (c[0]==c[1])):  
       return True  
    else:  
      return False

打印条件((2,2),(3,1),(1,1))#返回True
print condition((2,3),(1,1),(4,5))#返回False