将中缀布尔表达式解析为rpn,计算并生成真值表。

pyboolean的Python项目详细描述


pyboolean

将中缀布尔表达式解析为postfix(rpn),计算并生成真值表。

相容性

  • python 3.x
  • 任何操作系统

安装

pyboolean发布在pypi上,因此您只需要运行以下命令:

$ pip install pyboolean

用法

创建新的布尔表达式:

frompybooleanimportBoolExprbool_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"

接受的运算符符号的完整列表:

和:

还有。&;∧

或:

或+

不:

不是!~,

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

推荐PyPI第三方库


热门话题
java使用唯一的按钮标签单击按钮   代码生成如何使用Java codeModel为数组的特定索引赋值   java如何批量执行Camel SQL插入   java iText 7将ltv添加到现有签名   内存管理Java应用程序突然停止几天后(810)   带MySQL的java注册表单JavaFX在intellij中失败   如何使用eclipse为windows azure java项目启用远程调试   一种通用的java输入输出设计模式   java Android XML(RSS)忽略引号(“”)   java帮助:安卓中的8 X 10 2维按钮数组   java启动Android项目   JWrapper构建java应用程序   java如何在Android应用程序中设置基于日期/时间的默认页面加载?   java循环程序在完成后返回到起点   java Hibernate:更好的整体类还是多类映射?   回溯数独解算器的递归问题[Java]   java查找类用法   java如何在SpringWebFlow中将多个模型绑定到一个视图?