2017-02-28 12 views
0

変数と数値に文字列を割り当てることによって式を評価したいと思います。 この例では、出力を5にしたいと考えています。Python:数値への文字列の割り当てと評価

詳細:ユーザーが数式を入力し、 。プログラムは与えられた数で数式の値を計算する必要があります。 私の問題は、式を「評価する」ことです。次のコードの[?]を参照してください。

formula='a+b' 
a='a' 
b='b' 
dict1={} 
dict1[a]=3 
dict1[b]=2 
[?] 
print(eval(formula)) 

私は(VARSを使用)これまでに)[?]などが、今、私は、例えば4への変更のために(私の変数を再定義する問題を抱えている(varsの[A] = 4は何も変更されていない、私はまだ得ます5)

これを解決するには、vars()の代替手段がありますか?

+1

あなたがより明確にする質問を編集する必要があります。あなたは何を達成しようとしていますか、なぜですか?また、 'dict'はPythonキーワードであるため、変数名として使用しないでください。 –

+1

pythonキーワードではなく、ビルトインです。もしそれがキーワードだったのであれば、それは違法な構文(小さなニック・ピック、しかし正しいです!)です。 –

+0

evalをexec( "print" + formula)に変更しますが、これを絶対にしないでください – abccd

答えて

2

あなたはグローバル変数として使用する辞書をevalに与えることができます:

print(eval(formula, dict1)) 
関連する問題