将中缀布尔表达式解析为 RPN,评估并生成真值表。
项目描述
pyboolean
将中缀布尔表达式解析为后缀 (RPN),评估并生成真值表。
兼容性
- Python 3.x
- 任何操作系统
安装
pyboolean 发布在PyPi上,因此您只需要运行以下命令:
$ pip install pyboolean
用法
创建一个新的布尔表达式:
from pyboolean import BoolExpr
bool_expr = BoolExpr('1 or 0')
打印表达式的格式化版本:
print(bool_expr)
# Output: "1 + 0"
评估我们的布尔表达式:
print(bool_expr.eval())
# Output: "1"
布尔表达式还可以包含变量:
bool_expr = BoolExpr('1 . m + ( 0 + ! n ) . m')
为了评估带有变量的表达式,eval() 函数可以接受参数来替换它们:
print(bool_expr.eval(1, 0))
# Output: "1"
对于带有变量的表达式,可以生成一个真值表,如下所示:
print(bool_expr.truthtable())
# Output:
#╔════════════╗
#║ m n ┃ O ║
#║━━━━━━━━╋━━━║
#║ 0 0 ┃ 0 ║
#║────────╂───║
#║ 0 1 ┃ 0 ║
#║────────╂───║
#║ 1 0 ┃ 1 ║
#║────────╂───║
#║ 1 1 ┃ 1 ║
#╚════════════╝
或者,如果您需要操作原始真值表数据,请生成字典:
print(bool_expr.truthdict())
# Output: "{('0', '0'): '0', ('0', '1'): '0', ('1', '0'): '1', ('1', '1'): '1'}"
最后,关于格式的说明。当创建一个表达式时,所有的空格都被忽略了,并且接受了许多不同版本的操作符符号,所以一个人可以非常“有创意”地输入并且不用担心:
bool_expr = BoolExpr('p+1and ¬m.(1∧p ) ∨notxand~0')
print(bool_expr)
# Output: "p + 1 . ! m . ( 1 . p ) + ! x . ! 0"
接受的运算符符号的完整列表:
和:
和 。& ∧
或者:
或 + | ∨
不是:
不是 !~ ¬
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
pyboolean-0.1.post4.tar.gz
(4.1 kB
查看哈希)
内置分布
pyboolean-0.1.post4-py3-none-any.whl
(5.3 kB
查看哈希)