+/- plusminus是一个基于pyparsing infixNotation辅助方法的模块,用于构建易于编写和使用的解析器,用于解析和评估中缀算术表达式。plusminus的ArithmeticParser类包括独立的解析和评估方法,处理运算符优先级,通过括号覆盖,空格的存在与否,内置函数,以及预定义和用户定义的变量、函数和运算符。
项目描述
plusminus
plusminus 包提供了一个基于 pyparsing
的 infix_notation
辅助方法的预编译算术解析器和评估器。
可以使用 ArithmeticParser
解析和评估包含6个函数的算术表达式。
from plusminus import BaseArithmeticParser
parser = BaseArithmeticParser()
print(parser.evaluate("2+3/10"))
解析器还可以返回 ArithNode
对象的抽象语法树。
parsed_elements = parser.parse("2+3/10")
算术表达式按照标准的运算符优先级规则进行评估,允许使用括号来覆盖。
()
|x|
∩ & ∪ | - ^ ∆ (set operations)
**
-
* / // × ÷ mod
+ -
< > <= >= == != ≠ ≤ ≥
in ∈ ∉ (element in/not in set)
not
and ∧
or ∨
? : (ternary)
可以调用函数
abs ceil max
round floor str
trunc min bool
BaseArithmeticParser
还支持变量的赋值
r = 5
area = π × r²
最后一个表达式可以使用 @=
公式赋值来赋值
area @= π × r²
随着 r
的更新,评估 area
将会使用新的值重新评估。
还定义了一个具有更多运算符的 ArithmeticParser
类,包括
! - factorial
° - degree-radian conversion
√ ⁿ√ - square root and n'th root (2-9)
⁻¹ ⁰ ¹ ² ³ - common exponents as superscripts
以及额外的预定义函数
sin asin rad gcd
cos acos deg lcm
tan atan ln rnd
sgn sinh log randint
gamma cosh log2
hypot tanh log10
此解析器类可用于使用代数或三角表达式应用程序。
可以使用简单的API
定义自定义表达式。包括用于其他专用应用程序和领域的示例解析器
- 掷骰子(
"3d6 + d20"
) - 时间差表达式(
"today() + 2d + 12h"
) - 零售和商业表达式(
"20% off of 19.99"
) - 组合表达式(
"6C2"
或"5P3"
)
这些解析器可以集成到其他应用程序中,以支持对用户定义的特定领域表达式的安全评估。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
plusminus-0.8.1.tar.gz (36.3 kB 查看哈希值)
构建版本
plusminus-0.8.1-py3-none-any.whl (28.3 kB 查看哈希值)
关闭
plusminus-0.8.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7252664da7dffb1b405787e5bebc6a32702f48d6551a81c857a1c9ead9319ddd |
|
MD5 | 693df639b2b80b4e618550ef9f712729 |
|
BLAKE2b-256 | 909d0a5c73502ce3b1091970b87c6b23f05dde59edf4e54bab83a51c7cf4d9a0 |
关闭
plusminus-0.8.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9131e6232a996f63afe0f47a0f516e257709f4e8115911695638b958f941ffa9 |
|
MD5 | c8483e69e5ff9ac8c4282df00799cc10 |
|
BLAKE2b-256 | 11cb0e59c6a68f2709906e845e7b462a42bb3f386e70e015d38a238d0ae94c2d |