通用方程分析器和求值器

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双端队列(Deque)快速排序   java隐藏成功测试的日志   如何在java中循环某些内容?   java从ArrayList中删除重复对象   java在使用关键字驱动从Excel文件中获取数据时遇到了执行测试用例的问题   javasql生成表   java mavenshadeplugin不包括uber jar中其他模块的依赖项   Java泛型类找不到方法   使用Android和iOS的java通知   php如何在Java中解密aes256cbc   类当我已经导入枚举类所在的包时,为什么需要导入枚举类才能使用它们?[爪哇]   java未经检查的强制转换有什么问题?   io如何在使用java zip压缩压缩文件时将文件拆分为多个文件?   在java中,字典随机访问给定密钥的映射条目   Java登录表单