Python中是否可以计算字符串中的术语?例如:
string_a = "4 ** (3 - 2)"
unknown_function(string_a) = 4
Run Code Online (Sandbox Code Playgroud)
这可能吗?在我的例子中是否有模仿"unknown_function"的函数?
DSM*_*DSM 11
就像上一个问题sympy的有用模块一样,它可以在这里应用:
>>> import sympy
>>> sympy.sympify("4**(3-2)")
4
Run Code Online (Sandbox Code Playgroud)
乃至
>>> sympy.sympify("2*x+y")
2*x + y
>>> sympy.sympify("2*x+y").subs(dict(x=2, y=3))
7
Run Code Online (Sandbox Code Playgroud)
请注意,这将返回sympy对象,如果要从中获取整数或浮点数,则应明确执行转换:
>>> type(sympy.sympify("4**(3-2)"))
<class 'sympy.core.numbers.Integer'>
>>> int(sympy.sympify("4**(3-2)"))
4
Run Code Online (Sandbox Code Playgroud)
我把一个食谱混合在一起,将字符串表达式转化为函数,这有点可爱.
有 eval
eval(string_a)
# 4
Run Code Online (Sandbox Code Playgroud)
但是,如果string_a来自除了你之外的任何人,请不要在任何情况下使用它,因为它们很容易入侵你的系统并破坏你的文件!
| 归档时间: |
|
| 查看次数: |
11758 次 |
| 最近记录: |