python 实现四则混合运算计算器

这个是基于四则混合运算计算器 Calculator的修改版,新增了处理()的功能
调试次数较少,应该尚有bug未发现,如果发现有Bug,欢迎大家来评论指正
四则混合运算计算器:Calculator 1.0 链接

源代码如下
import time#获取程序运行时间
start = time.clock()class Calculator(object):'''这是一个四则混合运算计算器 Calculator 2.0'''def __init__(self):self.name = Calculatorself.formula=input('Please input formula:')#让用户输入公式self.formula_list=[]self.formula_list1=[]#定以两个个空列表,用于数据的转换处理def main(self):#主函数,主要处理括号运算self.formula_list=list(self.formula)#将用户输入的运算式转换成列表,储存在self.formula_list,方便进行处理num = 0#用来遍历formula_listSum=''#收集()内容while num<len(self.formula_list):while '(' in self.formula_list:if self.formula_list[num]==')' and self.formula_list[num-1].isdigit():num1=num-1while self.formula_list[num1]!='(':Sum = Sum+self.formula_list[num1]num1=num1-1else:self.formula_list1=self.formula_listself.formula_list=list(Sum[::-1])nums = self.DealOper()self.formula_list1[num1:num+1]=[nums]self.formula_list=self.formula_list1self.formula_list1=[]Sum=''num=0else:num=num+1else:print(self.DealOper())breakdef Fun_Mul(self):#计算公式中所有乘法运算if '*' in self.formula_list:i=0while i<len(self.formula_list):if self.formula_list[i] == '*' and (i+2)!=len(self.formula_list):Sum=int(self.formula_list[i-1])*int(self.formula_list[i+1])self.formula_list[(i-1):(i+2)]=[str(Sum)]i=i-2elif self.formula_list[i] == '*' and (i+2)==len(self.formula_list):Sum=int(self.formula_list[i-1])*int(self.formula_list[i+1])self.formula_list[(i-1):]=[str(Sum)]    else:i=i+1def Fun_Div(self):#计算公式中所有除法运算if '/' in self.formula_list:i=0while i<len(self.formula_list):if self.formula_list[i] == '/' and (i+2)!=len(self.formula_list):Sum=int(self.formula_list[i-1])//int(self.formula_list[i+1])self.formula_list[(i-1):(i+2)]=[str(Sum)]i=i-2elif self.formula_list[i] == '/' and (i+2)==len(self.formula_list):Sum=int(self.formula_list[i-1])//int(self.formula_list[i+1])self.formula_list[(i-1):]=[str(Sum)]    else:i=i+1def Fun_Sub(self):#计算公式中所有减法法运算if '-' in self.formula_list:i=0while i<len(self.formula_list):if self.formula_list[i] == '-' and (i+2)!=len(self.formula_list):Sum=int(self.formula_list[i-1])-int(self.formula_list[i+1])self.formula_list[(i-1):(i+2)]=[str(Sum)]i=i-2elif self.formula_list[i] == '-' and (i+2)==len(self.formula_list):Sum=int(self.formula_list[i-1])-int(self.formula_list[i+1])self.formula_list[(i-1):]=[str(Sum)]    else:i=i+1def DealFormula(self):#将计算式由字符串转成列表,并对其包含的多位数进行处理#self.formula_list=list(self.formula)sud=['+','-','*','/',]num = 0Sum=''while num<len(self.formula_list):if self.formula_list[num].isdigit():Sum=Sum+self.formula_list[num]num=num+1if num==len(self.formula_list) and self.formula_list[num-2].isdigit():buc=len(Sum)self.formula_list[(num-buc):num]=[Sum]continueelif self.formula_list[num] in sud:buc=len(Sum)self.formula_list[(num-buc):num]=[Sum]Sum=''num=num+1-(buc-1)continueelse:breakdef DealOper(self):#主函数,经过乘,除,减法运算后,计算式中只剩加法运算,对其进行累加self.DealFormula()self.Fun_Mul()self.Fun_Div()self.Fun_Sub()if '+' in self.formula_list:result = 0for number in self.formula_list:if number =='+':continue    else:result=result+int(number)return str(result)elif len(self.formula_list)==1:return str(self.formula_list[0])calculator=Calculator()
calculator.main()END=input('Enter any key to return')#防止程序闪退
end = time.clock()
print('Running time:' ,(end-start))

python 实现四则混合运算计算器相关推荐

  1. python 四则混合运算计算器

    python 四则混合运算计算器 思路:(1)获取一个运算公式(四则混合) (2)对获取的公式进行处理,因为Input获取的是字符串形式,这里处 理时将之转换成列表,并对其中包含的多位数进行处理.见D ...

  2. 四则混合运算c语言程序例,C++实现四则混合运算计算器

    本文实例为大家分享了C++实现四则混合运算的计算器,供大家参考,具体内容如下 计算器是带括号的四则运算实际上利用的是栈后进先出的原则 转换思想: #define _CRT_SECURE_NO_WARN ...

  3. js实现四则混合运算计算器

    最近想用js做一个简单的计算器,不过网上的例子好像大部分都是直接从左到右挨个计算,就好像1+2*5,就会先计算1+2,再计算3*5,并没有实现运算符的优先级,这里找到了一种方法实现,来总结一下.不过这 ...

  4. c语言字符型计算器,求用c语言编程四则混合运算计算器?

    #include #include #include char token[61]; /*存放表达式字符串的数组*/ int n=0; void error(void) /*报告错误函数*/ { pr ...

  5. java完善四则计算器_java 四则混合运算 计算器

    public class Counter { /**用递归算法,把括号内的公式算出然后递归 * @param args */ public static void calculator (String ...

  6. 四则混合运算c语言程序例,用c语言编程四则混合运算计算器

    满意答案 #include #include #include char token[61]; /*存放表达式字符串的数组*/ int n=0; void error(void) /*报告错误函数*/ ...

  7. 【数据结构】支持四则混合运算的计算器(转)

    1.给出两个数,用户再指定操作符,要求计算结果,这实现起来很容易:   2.多个数,但只涉及同一优先级的操作符,做起来也很容易:   3.多个数,不同优先级的操作符,怎么办呢? 想想就头痛,不过还好前 ...

  8. php混合运算计算器,混合运算计算器

    用计算器怎样计算加减乘除混合运算 第一点,有一个简单的计算器,显示屏幕比较大,而且按键比较大,比较简单,可以非常快的使用乘除混合运算. 第二点,可以将如下的一道题进行一次性运算:"(101* ...

  9. java简单运算程序_JAVA实现简单四则混合运算

    JAVA实现简单四则混合运算,说明:该计算器支持实则混合运算,如 2*(3+1 )/ 4-3 *9+ 8/ 3*4- 5,则输出:-19.333332 需要说明的事括号必须是英文的.源码如下仅供学习: ...

最新文章

  1. dockerfile各种命令解析
  2. linux上配置spark集群
  3. OPENCV-5 学习笔记
  4. 通过通用数据访问扩展AWS生态系统
  5. Python简明教程--String
  6. 服务器部署项目拓扑图,cdn服务器部署拓扑图
  7. T32 连接PLC与调试器,使用python可以操纵调试器
  8. 编码 面试_我的编码面试失败
  9. Kryo+Netty传输序列化对象
  10. 海上风电消防火灾报警系统中消防主机超远距离联网方案
  11. pikachu漏洞平台通关系列导览(所有关卡已完结)
  12. 订单导出(1688)
  13. Word文档快速翻译的方法,一分钟学会
  14. 不用远程软件,校园网电脑之间如何远程连接
  15. Linux命令--mkdir命令:创建目录(文件夹)
  16. 优必选在 CES 上发布了一个真·家庭服务机器人
  17. Opengl投影变换理解
  18. 面试面经|Java面试kafka面试题
  19. IDLpython学习——实现根据有经纬度坐标的excel/csv表格提取相应影像的像元值
  20. 服务器c盘虚拟内存取消不掉,虚拟内存没用就关掉吧

热门文章

  1. DOS命令之chkdsk:检查磁盘
  2. 各种茶叶的功效 不要喝错
  3. 怎样在word和ppt中使用好看的字体
  4. Android 8.0适配指北
  5. vmware converter p2v windows2008R2
  6. SNL编译器,语义分析
  7. Ethernet,TCP,IP协议简介
  8. 《阿弥陀佛么么哒》读后感
  9. 在基本网格世界中训练强化学习代理
  10. 记录之十进制,二进制,十六进制