零基础学python-5.2 数字表达式操作符

表达式是处理数字最基本的工具

a=1#常量
a=a+1#表达式

操作符

操作符描述
yield生成 器函数发送协议
lambda args:expression生成匿名函数
x if y else z三元表达式
x or y 逻辑或(存在短路算法)
x and y 逻辑与(存在短路算法)
not x逻辑非
x in y , x not in y成员关系
x is y ,x is not y对象实体测试
x<y,x<=y,x>y,x>=y,x==y,x!=y比较大小
x|y位或,集合并集
x^y位异或,集合对称差
x&y位与,集合交集
x<<y,x>>y左移或者右移y位
x+y,x-y加减法、合并删除
x*y,x%y,x/y,x//y乘,取余数,除,地板除
-x,+x一元减法
~x按位求补(取反)
x**y幂运算
x[i]索引,函数调用
x[i:j:k]分片
x(...)调用函数
x.attr调用属性
()元组,表达式,生成器
[]列表,列表解析
{}字典,集合,集合和字典解析

3.优先级

上表是根据优先级来排序的,排名越前优先级越高,同一行的优先级一样


4.如果在表达式里面存在小括号,则小括号优先

(1+2)*3
1+2*3

5.当类型混合时,类型自动升级

从数值复杂度排序:整形,浮点型,复数

所以如果整形跟浮点型合在一起运算,得出的结果时浮点型




就说到这里,谢谢大家

------------------------------------------------------------------

点击跳转零基础学python-目录

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现数表达式的分析树,可以采用以下步骤: 1. 将中缀表达式转换为后缀表达式,例如将 "3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3" 转换为 "3 4 2 * 1 5 - 2 3 ^ ^ / +" 2. 用栈来实现后缀表达式的计算。从左到右遍历后缀表达式,遇到数字则入栈,遇到运算符则从栈中弹出相应数量的数字进行计算,并将计算结果入栈。最终栈中只剩下一个数字,即为表达式的计算结果。 3. 用二叉树来实现分析树。从右往左遍历后缀表达式,遇到数字则将其作为叶节点,遇到运算符则将其作为根节点,将弹出的两个数字作为左右子树。最终根节点即为表达式的根节点。 下面是一个简单的 Python 实现: ```python class TreeNode: def __init__(self, val): self.val = val self.left = None self.right = None def build_expression_tree(postfix): stack = [] for token in postfix: if token.isdigit(): node = TreeNode(int(token)) stack.append(node) else: right = stack.pop() left = stack.pop() node = TreeNode(token) node.left = left node.right = right stack.append(node) return stack.pop() def evaluate_expression_tree(root): if root.val.isdigit(): return int(root.val) else: left_val = evaluate_expression_tree(root.left) right_val = evaluate_expression_tree(root.right) if root.val == "+": return left_val + right_val elif root.val == "-": return left_val - right_val elif root.val == "*": return left_val * right_val elif root.val == "/": return left_val / right_val elif root.val == "^": return left_val ** right_val postfix = "3 4 2 * 1 5 - 2 3 ^ ^ / +" root = build_expression_tree(postfix) result = evaluate_expression_tree(root) print(result) ``` 输出结果为:3.0001220703125

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值