Python でステートメントを動的に実行するにはどうすればよいですか?
例: 値 x に次の式 (a+b)/2 が含まれているとします。
a = 1
b = 3
x = (a+b)/2
x の値はテーブルから取得されます
Python でステートメントを動的に実行するにはどうすればよいですか?
例: 値 x に次の式 (a+b)/2 が含まれているとします。
a = 1
b = 3
x = (a+b)/2
x の値はテーブルから取得されます
できるよ:
a = 1
b = 3
x = '(a+b)/2'
print eval(x)
文字列またはコード オブジェクトが必要なため、値x
は引用符で囲まれていることに注意してください。eval
また、おそらくこれを読んで、安全に使用できることを確認してください(これはしばしば懸念される可能性があり、私はその欠陥の専門家であるふりをするつもりはありません:))。
Python には「exec()」と「eval()」の両方がありますが、この場合は後者を使用する必要があると思います。
>>> a = 1
>>> b = 3
>>> x = "(a + b)/2"
>>> eval(x)
2
次のように、eval を使用できます。
eval(x)
実際に使用できます
x=eval('(a+b)/2')
結果を取得します (この場合、eval は計算の結果を返します)。