+7 投票
分类:学习问题 | 用户: 10 10 9 (8.6k 分)
如何能将一个字符串转化为一个参数表达式?

比如:

将字符串a='math.sin(math.pi*x)'转化为一个表达式b=math.sin(math.pi*x)

1个回答

+3 投票
用户: 10 9 8 (5.7k 分)
采纳于 用户:
 
已采纳

import ast
import math
x = 0.5
a = 'math.sin(math.pi*x)'
b = ast.parse(a).body[0].value
print(eval(compile(ast.Expression(b), '<string>', 'eval')))

这里的ast.parse(a).body[0].value将字符串a解析为一个表达式,并将其存储在变量b中。如果需要将表达式b求值,可以使用eval()函数。这里的compile(ast.Expression(b), '<string>', 'eval')将表达式b编译为可执行的代码,并返回一个代码对象。然后,eval()函数将这个代码对象作为参数进行求值,并返回结果。

欢迎来到 在线问答系统 ,有什么不懂的可以尽管在这里提问,你将会收到社区其他成员的回答。
...