用python创作计算器函数简单处理字符串形式的表达式

本文介绍了使用Python创建一个能处理字符串形式四则运算表达式的计算器。通过双栈结构,将表达式拆分为数据栈和符栈,然后通过联动处理和无优先级计算方法,实现了对表达式的计算。在计算过程中,数据被组织成计算组,逐个进行运算,最终得到结果。
摘要由CSDN通过智能技术生成

既然要对一个表达式进行计算,肯定要涉及对字符串的处理,和对一些数据的保存。所在我的思路里,我对数据做了一个简单的分类。不管这个表达式有多么复杂,只要不超出我们四则运算的范围我们就吧当前表达式分割出来的数据分成两类,一类是数据类,一类是符号类,将他们分别存储在两个线性结构中,在后期对他们进行有关联的处理

  1. 双栈
    数据栈
    比如表达式"1+2+3="分割出来的数据栈如下图:
    在这里插入图片描述
    符栈
    同样的表达式"1+2+3=“提取出符号的结果如下:
    在这里插入图片描述
    一个四则运算的表达式经过分割后整个式子以两个栈的形式存在,这个讲一个表达式分割为两个栈的过程叫做"生成双栈

这是我代码中生成双栈的过程

def calculator(exp)#计算器函数传入表达式(exp)
	numlist=list()#数据栈
	signlist=list()#符号栈
	num=""#数字**胶囊**
	for i in exp:#遍历这个表达式
		if num !=""#如果当前数据叫胶囊不为空
			if i not in "+-*/()":#如果当前字符不是符号则当前字符压入
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值