3

私は以下のような条件付き文字列を持っています、

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

条件2の出力:True

アップデート :

申し訳ありませんが、友達、

上記のcondition1とcondition2のような条件付き文字列があります。

条件を文字列として解析し、その関数がif-elseのように実行され、ブール値を返すときに関数を作成したい

助けてください...

ありがとうチンタン

4

4 に答える 4

3

警告:使用eval潜在的に危険であり、信頼できない入力(たとえば、あらゆる種類のユーザー入力)を評価しないでください。

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
于 2013-01-30T09:10:12.660 に答える
2

条件を評価してPythonにTrueまたはFalseの出力を与える方法を尋ねている場合は、Pythonのeval()関数を見てください。

于 2013-01-30T09:07:47.940 に答える
1

Pythonでは、比較の演算子はです==

いずれにせよ、それでも問題が解決しない場合は、私たちが何を支援すべきかをより明確に述べる必要があります。

更新: Python式を表す文字列を評価するために探している関数はですeval()

于 2013-01-30T08:58:44.930 に答える
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

print condition((2,2)、(3,1)、(1,1))#Trueを返します
print condition((2,3)、(1,1)、(4,5))#Falseを返します

于 2013-01-30T09:53:33.793 に答える