Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用包含布尔表达式的字符串创建PyEDA布尔表达式?

如何使用包含布尔表达式的字符串创建PyEDA布尔表达式?
EN

Stack Overflow用户
提问于 2020-07-01 22:53:14
回答 1查看 327关注 0票数 0

我正在从前端获得一个( (A & B) | (C & ~D) )形式的布尔表达式。我需要把它转换成一个布尔表达式,这个表达式可以通过PyEDA来解决。要在PyEDA中编写布尔表达式,需要执行两个步骤。

  1. 使用A,B,C,D = map(exprvar, "abcd") - This becomes a problem when number of boolean variables are dynamicA = exprvars("a", 4) - solves the dynamic variable issue but need to convert letters in the equation to A[0],A[1]...创建布尔变量A、B、C、D。
  2. 将表达式编写为( (A & B) | (C & ~D) )

试验了以下方法。boolean_exp表示布尔表达式字符串,num_variables表示字符串中的变量数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def parse_boolean_expression(boolean_exp,num_variables):
    count = 0
    boolean_exp_list = list(boolean_exp)
    for index,char in enumerate(boolean_exp_list):
        if char.isalpha():
            boolean_exp_list[index] = "Z[{}]".format(count)
            count += 1
    final_bool_exp = "".join(boolean_exp_list)

    Z = exprvars("z", num_variables)
    expression = final_bool_exp

此方法不起作用,因为创建的表达式和变量是字符串类型,而正确的类型应该是表达式的<class 'pyeda.boolalg.expr.OrOp'>和变量的<class 'pyeda.boolalg.expr.variables'>

在交互模式中,我们可以很容易地完成上述步骤,但是如何使用包含从前端发送的动态变量的布尔表达式字符串在脚本模式下构建这个表达式呢?

EN

回答 1

Stack Overflow用户

发布于 2021-01-21 12:46:31

pyEDA有一个将文本转换为表达式的expr()函数。下面是它在您的示例中的工作方式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> f = expr('( (A & B) | (C & ~D) )')

>>> f
Or(And(C, ~D), And(A, B))

>>> type(f)
<class 'pyeda.boolalg.expr.OrOp'>

这是一个链接到更多的信息。

文本到表达式

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62690584

复制
相关文章
习题25:布尔表达式练习
在编程中,布尔逻辑可以说是无处不在,它们是计算机运算的基础和重要组成部分,掌握它们很重要!
py3study
2018/08/02
3280
2021-06-03:布尔运算。给定一个布尔表达式和一个期望的布尔结果 result,布尔表达式由 0 (false)、1 (t
2021-06-03:布尔运算。给定一个布尔表达式和一个期望的布尔结果 result,布尔表达式由 0 (false)、1 (true)、& (AND)、 | (OR) 和 ^ (XOR) 符号组成。实现一个函数,算出有几种可使该表达式得出 result 值的括号方法。
福大大架构师每日一题
2021/08/05
6550
天池 在线编程 布尔表达式求值(栈)
https://tianchi.aliyun.com/oj/245679029019779851/254275128279634588
Michael阿明
2021/02/19
4310
M - 翻译布尔表达式【编译原理机测】
M - 翻译布尔表达式 Description 大家都学过了布尔表达式的翻译,其中有一个拉链-回填技术,这次我们就练习这个技术。
来杯Sherry
2023/05/25
2870
2021-06-03:布尔运算。给定一个布尔表达式和一个期望的布
2021-06-03:布尔运算。给定一个布尔表达式和一个期望的布尔结果 result,布尔表达式由 0 (false)、1 (true)、& (AND)、 | (OR) 和 ^ (XOR) 符号组成。实现一个函数,算出有几种可使该表达式得出 result 值的括号方法。
福大大架构师每日一题
2021/06/03
4390
2021-06-03:布尔运算。给定一个布尔表达式和一个期望的布
布尔查询
GET /livingdata/_search { "query": { "bool":{ "must_not": [ { "match": { "liveSourceType": 0 } } ] } }, "highlight": { "fields": { "nick": {} } }, "sort": [
用户9347382
2022/02/17
6010
PL/SQL 如何输出布尔型
    布尔类型是PL/SQL数据类型的一种,能存储逻辑值TRUE、FALSE。只有逻辑操作符才允许应用在布尔变量上。数据库 SQL 类型并不支持布尔 类型,只有PL/SQL才支持。所以不能往数据库中插入或从数据库中检索出布尔类型的值。下面描述了布尔型的声明、赋值以及如何输出布尔型。
Leshami
2018/08/14
1.1K0
LeetCode MySQL 1440. 计算布尔表达式的值(case when then else end)
文章目录 1. 题目 2. 解题 1. 题目 表 Variables: +---------------+---------+ | Column Name | Type | +---------------+---------+ | name | varchar | | value | int | +---------------+---------+ name 是该表主键. 该表包含了存储的变量及其对应的值. 表 Expressions: +-----
Michael阿明
2021/02/19
5640
「SQL面试题库」 No_109 计算布尔表达式的值
题目介绍: 计算布尔表达式的值 evaluate-boolean-expression
不吃西红柿
2023/10/16
1430
Python中的布尔类型以及布尔值介绍
布尔类型是一种逻辑类型,它只有两个取值:True(真)和False(假)。在Python中,True和False是内置的布尔类型常量,用于表示真和假的状态。
小博测试成长之路
2023/09/01
9270
Python中的布尔类型以及布尔值介绍
Python 布尔类型
事实上,除了空值(如()、[]、{}、""、数字0和None),没有太多值会被评估为False。当然,值False会被评估为False。
小万哥
2023/09/30
2350
Python 布尔类型
【说站】Python布尔索引的使用
1、布尔索引需要找到每行的'A'列的真值等于'foo',然后使用这些真值来确定要保留哪些行。
很酷的站长
2022/11/24
5020
【说站】Python布尔索引的使用
布尔代数入门
布尔代数是计算机的基础。没有它,就不会有计算机。 布尔代数发展到今天,已经非常抽象,但是它的核心思想很简单。本文帮助你理解布尔代数,以及为什么它促成了计算机的诞生。 我依据的是《编码的奥妙》的第十
ruanyf
2018/04/12
1.1K0
布尔代数入门
Python中的布尔类型
布尔类型还可以与其他数据类型进行逻辑运算,Python规定:0、空字符串、None为False,其他数值和非空字符串为True。
py3study
2020/01/09
1.7K0
Python布尔类型
但在Python语言中,布尔类型只有两个值,True与False。请注意,是英文单词的对与错,并且首字母要大写,不能其它花式变型。
汤贤
2020/05/18
1.3K0
Python布尔类型
【Python】布尔类型 ( 布尔类型变量 | 比较运算符 )
Python 中的 布尔类型 ( bool ) 用于 逻辑判断 , 布尔类型 是 数字类型 ( Number ) 的一种 , 其有两种 字面量 取值 :
韩曙亮
2023/10/11
5240
【Python】布尔类型 ( 布尔类型变量 | 比较运算符 )
2023-07-19:布尔表达式 是计算结果不是 true 就是 false 的表达式 有效的表达式需遵循以下约定: ‘t‘,运
2023-07-19:布尔表达式 是计算结果不是 true 就是 false 的表达式
福大大架构师每日一题
2023/07/25
3110
2023-07-19:布尔表达式 是计算结果不是 true 就是 false 的表达式 有效的表达式需遵循以下约定: ‘t‘,运
python if 语句,布尔运算
        1,真值表达式判断会自上而下进行,如果有一条为True则执行其中的语句块,然后结束if 语句的执行,如果所有的真值表达式都为False。则执行else子句里的语句。
py3study
2020/01/13
8630
01布尔模型&倒排索引
原文链接: http://www.cnblogs.com/jacklu/p/8379726.html
用户7043923
2020/03/12
8030
点击加载更多

相似问题

使用PyEDA访问布尔表达式的args

26

Pyeda:布尔表达式的内固定形式

13

包含字符串和数字的布尔表达式

12

布尔表达式

71

!!布尔表达式

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文