day21 计算器作业
1 import re 2 3 express = '1 - 2 * ( ( 6 0 -3 0 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )' 4 # 去掉所有的空格 5 # 找括号,先找括号里面没有括号的最里面的括号 6 # 先算括号里的乘除,再算括号里的加减 7 8 # 计算表达式 9 def dealwith(express): 10 if "+-" in express:express.replace("+-","-") 11 if "+-" in express:express.replace("--","+") 12 return express 13 14 def cal_exp_son(exp_son): 15 # 只用来计算原子型表达式,最小的表达式 16 if "/" in exp_son: 17 a,b = exp_son.split("/") 18 return str(float(a)/float(b)) 19 if "*" in exp_son: 20 a,b = exp_son.split("*") 21 return str(float(a) * float(b)) 22 23 def cal_express_no_bracket(exp): 24 # 计算没有括号的表达式 25 # exp 为未经过处理的最内层的带括号的表达式 26 exp = exp.strip("()") 27 print(exp) 28 # 先乘除,后加减 29 while True: 30 ret = re.search("\d+\.?\d*[*/]-?\d+\.?\d*",exp) 31 if ret : 32 exp_son = ret.group() 33 ret = cal_exp_son(exp_son) 34 exp = exp.replace(exp_son,ret) 35 36 # 将空格去除 37 new_express = re.sub(" ","",express) 38 39 #提取括号里面没有其他括号的的表达式 40 while True: 41 ret = re.search("\([^()]+\)",new_express) 42 if ret : 43 express_no_bracket = ret.group() 44 ret = cal_express_no_bracket(express_no_bracket) 45 new_express= new_express.replace(express_no_bracket,ret) 46 print(new_express) 47 new_express = dealwith(new_express) 48 print(new_express) 49 else: 50 print("表达式已经没有括号了",new_express) 51 break
转载于:https://www.cnblogs.com/shijieli/p/9714600.html
day21 计算器作业相关推荐
- 存款利息python题_Python——GUI编程 利息计算器 作业9(python programming)
importsysfrom PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * classcal ...
- pythongui做计算器_Python——GUI编程 利息计算器 作业9(python programming)
importsysfrom PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * classcal ...
- python计算利息程序_Python——GUI编程 利息计算器 作业9(python programming)-Go语言中文社区...
importsysfrom PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * classcal ...
- 定期存款利息计算器(作业)
一.问题及代码 /* *文件名称:定期存款利息计算器 *作 者:武鹏翔 *完成日期:2017.3.13 *版 本 号:v6.0 *对任务及求解方法描述部分: *输入描述: *问题描述: *程序输出: ...
- 《面向对象程序设计》课程作业二
github链接 作业链接 编写一个程序,要求根据给定的圆的半径求圆的面积,并将求得的结果打印出来.--建立一个工程,将程序写成两个.cpp和一个.h的形式. 这个问题倒是没什么难的,但对于同学们来说 ...
- python自动化ppt_老男孩Python自动化开发12期完整精华版(含作业代码课件)
[课程内容] 第1章: 开课介绍 同学互相介绍 Python简史介绍 python3的新特性 开发工具ide介绍 helloworld程序 变量与赋值 用户交互 条件判断与缩进 循环控制 循环次数限制 ...
- 《面向对象程序设计》2018年春学期寒假及博客作业总结
在过了半个月后写这篇总结,有点时过境迁的感觉,开头写了好几遍,都找不到感觉,但又觉得有些要点很有必要记录下来,以便以后改进.因此,只能简略言说,无法传情达意. 一.关于寒假作业1.寒假作业有必要继续保 ...
- 【Java PTA作业】当老师一口气布置八个作业( 8 / 8 )
目录 作业一:基本数据类型与表达式 一.判断题 二.单选题 作业二:程序控制结构 一.单选题 二.程序填空题 三.编程题 7-3 sdut-循环-5-百钱买百鸡 作业三:类与对象 一.单选题 二.编程 ...
- Java计算器简易代码
B站狂神计算器作业 我写的计算器 package com.chen.method;import java.util.Scanner; //简易计算器 public class Demo7 {publi ...
最新文章
- 最长公共子序列Java代码实现
- sap 里的用户菜单是灰色的,不可用的解决方法
- boost::units::absolute相关的测试程序
- SQL Server 2005参考:Apply运算符
- 世界500强牛企英语面试精彩问答
- Integer的常用方法和String类型的常用方法
- 威海二职工业机器人专业_谋思路 建平台 促房山职教专业发展 ——与北京工业职业技术学院专业对接洽谈会在房山二职举行...
- java64位1.8.0下载_jdk1.8下载 64位
- 挑战程序设计竞赛(第二章:2.1 搜索)
- Docker | 基于docker启动jar包,并进行更新
- 制作透明背景的微信头像
- word中脚注和尾注的处理
- 疾病地图制作_助力旅游业复工复产,这份山西中医文旅地图请收好,就在你家门口...
- Android自动化测试应用:uiautomatorviewer工具的安装与使用
- 点击word页面自动弹出信息检索
- 云测试软件详解,云计算存储测试:FIO工具入门与实战
- Eclipse版本号及各个版本区别
- Windows下编译LibreCAD
- 2022-08-26 JQuery(二)
- IDEA 出现问题:IDEA Shift+shift 万能搜索你也有失效的时候
热门文章
- android 数据存储怎么保存图片_遇到验证码怎么办?Python编写一个验证码图片数据标注GUI程序!...
- 场效应与三极管 电路标识符_看懂这6个提示,轻松搞定恒流源电源电路设计!...
- com.facebook.imagepipeline.bitmaps.TooManyBitmapsException Fresco使用过程中遇到的坑
- 面试中Spring常见问题
- linux和java_java内存和linux关系
- ajax 更新模型数据_PyTorch视觉工具包torchvision重大更新!支持各种检测模型、分割模型,还有许多数据集...
- containerd和docker技术的比较
- Linux系统卡慢之调优方法
- java实现两个最大整数相加_JAVA-实现两个超大整数相加
- Linux服务器下安装配置Nginx的教程