逻辑运算符 and 和 or 的运行返回机制

and 的返回机制:当所有值为真,返回最后一个真值;

                当存在一个假值,返回第一个假值;

or  的返回机制:当所有值为假,返回最后一个假值;

                当存在一个真值,返回第一个真值;

eg:在Python中   123 and 456结果是456而123 or 456结果是123。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个示例代码,可以修改 `buildParseTree` 和 `evaluate` 支持逻辑运算符。 ```python import operator # 支持的运算符 operators = { '+': operator.add, '-': operator.sub, '*': operator.mul, '/': operator.truediv, '>': operator.gt, '<': operator.lt, '>=': operator.ge, '<=': operator.le, '==': operator.eq, 'and': operator.and_, 'or': operator.or_, 'not': operator.not_ } def buildParseTree(expression): # 将表达式分割成单词列表 tokens = expression.split() # 创建根节点 root = BinaryTree('') # 创建当前节点,并将其设置为根节点 current = root for token in tokens: if token == '(': # 如果是左括号,创建一个新节点作为当前节点的左子节点,并将当前节点的左子节点设置为新节点 current.insertLeft('') current = current.getLeftChild() elif token in operators: # 如果是运算符,将当前节点的值设置为运算符,并创建一个新节点作为当前节点的右子节点, # 并将当前节点的右子节点设置为新节点 current.setRootVal(token) current.insertRight('') current = current.getRightChild() elif token == ')': # 如果是右括号,将当前节点设置为当前节点的父节点 current = current.getParent() else: # 否则,将当前节点的值设置为该单词,并将当前节点设置为当前节点的父节点 try: current.setRootVal(int(token)) except ValueError: current.setRootVal(token) parent = current.getParent() if parent is not None: current = parent.getRightChild() return root def evaluate(parseTree): # 如果是叶子节点,返回节点的值 if parseTree.getLeftChild() is None and parseTree.getRightChild() is None: return parseTree.getRootVal() else: # 否则,获取运算符和左右子树 op = parseTree.getRootVal() left_operand = evaluate(parseTree.getLeftChild()) right_operand = evaluate(parseTree.getRightChild()) # 根据运算符计算结果 if op == 'and': return operators[op](left_operand, right_operand) elif op == 'or': return operators[op](left_operand, right_operand) elif op == 'not': return operators[op](left_operand) else: return operators[op](left_operand, right_operand) ``` 这里的 `buildParseTree` 和 `evaluate` 函数与之前的实现基本相同,但是添加了对逻辑运算符的支持。在 `operators` 字典中添加了 `and`、`or` 和 `not` 运算符,并在 `buildParseTree` 中处理这些运算符。在 `evaluate` 函数中,根据运算符选择合适的操作函数进行计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值