通用方程分析器和求值器
Equation的Python项目详细描述
方程式介入器
方程包提供了一个可扩展的方程分析器和评估系统。
它将接受一个字符串,如"sin(x+y^2)",并将其转换为一个可以调用的python对象 这允许安全评估存储在配置文件中或从 键盘。此包从不调用python求值命令,因此它们不存在执行的风险 任何意外的python代码。
生成的expression对象被设计成类似于python函数的行为,并且可以在任何地方使用 需要python函数,可以使用位置参数或关键字参数调用它来设置 方程变量,默认情况下,变量的顺序与它们在方程中出现的顺序相同,但是 创建表达式对象时可以设置显式顺序。
示例
>>> from Equation import Expression >>> fn = Expression("sin(x+y^2)",["y","x"]) >>> fn sin((x + (y ^ (2+0j)))) >>> print fn \sin\left(\left(x + y^{(2+0j)}\right)\right) >>> fn(3,4) (0.42016703682664092+0j)
支持的numpy数组
此包使用的默认函数映射将运算符和函数映射到numpy函数,因此可以使用 numpy数组。
乳胶支架
显示字符串格式,即str()被设置为使用乳胶语法,允许在输出中呈现高质量的表达式grqaphing包matplotlib支持此语法
注意
repr()方法将返回一个适合传递给表达式的字符串,但是它是从标记化表达式中重新转换的,并且包含所有方括号。
未来版本
未来版本的目标是:
- reduce repr()type respresentation只使用必需的括号
- 允许使用函数变量,而不仅仅是预定义的函数