通用方程分析器和求值器

Equation的Python项目详细描述


https://travis-ci.org/alphaomega-technology/Equation.svg?branch=v1.2.01

方程式介入器

方程包提供了一个可扩展的方程分析器和评估系统。

它将接受一个字符串,如"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只使用必需的括号
  • 允许使用函数变量,而不仅仅是预定义的函数

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在jframe中模糊的背景上创建一个透明的矩形   java和super之间有区别。getX()和简单的x?   使用ant的java删除eclipse项目   java找不到。txt文件?   多线程Java wait()notify()   带按钮的java透明控件   java Android Studio 3无法构建我的项目   性能最佳(最快且节省内存)的Java收集/数据结构,可同时插入和删除项   spring+hibernate集成中的java ClassNotFoundException   java如何在Android上建立异步URL连接?   java当我选择contacts选项卡时,选项卡栏消失了   java根据数据库中的日期获取结果,不考虑时间   java如何访问WebChromeClient中的方法?   java如何在安卓中使用两行列表项?   spring Swagger Java日期格式验证引发异常