Skip to main content

将中缀布尔表达式解析为 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 查看哈希

已上传 source

内置分布

pyboolean-0.1.post4-py3-none-any.whl (5.3 kB 查看哈希

已上传 py3