2

如何在 Python 中动态执行语句?

例如:假设值 x 包含以下表达式 (a+b)/2,

a = 1
b = 3
x = (a+b)/2

x 的值将来自表

4

4 回答 4

2

可能你想要eval

#!/usr/bin/env python

a = 1
b = 3
x = "(a+b)/2"
print eval(x)

但这通常被认为是一种不好的做法(单击此处以获得更详细和更有趣的解释)

于 2012-08-21T17:37:26.170 回答
0

你可以做:

a = 1
b = 3
x = '(a+b)/2'

print eval(x)

请注意,由于需要字符串或代码对象,因此将值x括在引号中。eval

此外,也许阅读本文以确保您安全地使用它(因为这通常是一个问题,我不会假装是它的缺陷专家:))。

于 2012-08-21T17:34:45.277 回答
0

尽管 python 同时具有“exec()”和“eval()”,但我相信您希望在这种情况下使用后者:

>>> a = 1
>>> b = 3
>>> x = "(a + b)/2"
>>> eval(x)
2
于 2012-08-21T17:35:21.533 回答
0

您可以使用 eval,如

eval(x)

其实你可以使用

x=eval('(a+b)/2')

获取结果(在这种情况下,eval 将返回计算结果)。

于 2012-08-21T17:37:07.587 回答