python简单计算器综合实验报告_python之简单计算器
importre#问题:让用户选择1,2不现实,如何让用户自动加减乘除#思考:现在已经能够处理,单个的加减或乘除#可否在混合中先分组出(乘除) eg: [‘8+9+‘,‘9*4/3‘,‘-‘,‘4*2‘,‘+5-2’#这样可以处理乘除,如何分组呢?? [bc] 匹配b或c
##8+9+9*4/3-4*2+5-2#num = input("please input:")#s = re.split(r‘(\d[*/]\d[*/]\d)‘, num)#print(s)
#coding:utf-8
#将输入的字符串格式统一转换成列表,将数字、符号、括号都成一个独立元素,#如: 12+3*(14+5) ----> ["12","+","3","*","(","14","+","5",")"]
defformat_input(input_re_value):
input_re_value= input_re_value.replace(" ", "") #去掉空格
print(input_re_value)
format_list=[]for i ininput_re_value:
format_list.append(i)#独立元素
snum =0while 1:try:if format_list[snum].isnumeric(): #如果列表第一个是“数字”,则返回true
if format_list[snum + 1].isnumeric():
format_list[snum]= format_list[snum] + format_list[snum + 1]
format_list.pop(snum+ 1)else:
snum+= 1
else:
snum+= 1
exceptIndexError:returnformat_list#计算没有括号的列表的值。
defcomput(re_value):while "*" in re_value or "/" inre_value:for i, j inenumerate(re_value):if j == "*":
re_cheng= float(re_value[i - 1]) * float(re_value[i + 1])
re_value.pop(i- 1)
re_value.pop(i- 1)
re_value.pop(i- 1)
re_value.insert(i- 1, re_cheng)if j == "/":
re_chu= float(re_value[i - 1]) / float(re_value[i + 1])
re_value.pop(i- 1)
re_value.pop(i- 1)
re_value.pop(i- 1)
re_value.insert(i- 1, re_chu)while "+" in re_value or "-" inre_value:for i, j inenumerate(re_value):if j == "+":
re_jia= float(re_value[i - 1]) + float(re_value[i + 1])
re_value.pop(i- 1)
re_value.pop(i- 1)
re_value.pop(i- 1)
re_value.insert(i- 1, re_jia)if j == "-":
re_jian= float(re_value[i - 1]) - float(re_value[i + 1])
re_value.pop(i- 1)
re_value.pop(i- 1)
re_value.pop(i- 1)
re_value.insert(i- 1, re_jian)returnre_value[0]#通过循环,先查找列表的第一个")",然后在")"位置向列表前找到第一个"("所在位置,#并将其中的元素提取出来,生成新的列表,交给comput计算,#返回值再插入列表当中,继续循环,直到没有"("为止
defbracket_filter(list1):while "(" inlist1:
i= list1.index(")")for m in range(i, -1, -1): #start, stop, step
if list1[m] == "(": #往前找,找到第一个"("
list_new = list1[(m + 1):i]
re_res=comput(list_new)
list1.insert(m, str(re_res))for item1 in range(i + 1 -m):
list1.pop(m+ 1)break
returncomput(list1)
input_sn= input("pls input:")
f_re=format_input(input_sn)
result=bracket_filter(f_re)print("The result is:", result)
python简单计算器综合实验报告_python之简单计算器相关推荐
- python简单计算器综合实验报告_Python实现的简单计算器功能详解
本文实例讲述了Python实现的简单计算器功能.分享给大家供大家参考,具体如下: 使用python编写一款简易的计算器 计算器效果图 首先搭建计算器的面板: 计算器面板结构 建造一个继承于wx.Fra ...
- python综合实验报告_Python程序设计实验报告五:综合运用三种基本结构进行程序设计(综合性实验)...
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名姚彩琴学号3190505129 成绩 日期 2020.4.22 指导老师修宇 [实验名称]综合运用三种基本结构进行程序设计(综合性实 ...
- python综合实验报告_Python程序设计 实验报告
安徽工程大学 Python程序设计 实验报告 班级:物流192 姓名:刘马汉卿学号:319005211 成绩: 日期:2020年4月29日 指导老师:修 ...
- python字典的应用实验报告_Python字典应用的一个例子
#!/usr/bin/env python #定义一个空字典 db = {} def newuser(): prompt = '--login desired: ' while True: name ...
- python词频统计西游记实验报告_Python文本统计功能之西游记用字统计操作示例
本文实例讲述了Python文本统计功能之西游记用字统计操作.分享给大家供大家参考,具体如下: 一.数据 xyj.txt,<西游记>的文本,2.2MB 致敬吴承恩大师,4020行(段) 二. ...
- python凯撒加密实验报告_Python之凯撒加密
凯撒加密介绍 在密码学中,恺撒密码是一种最简单且最广为人知的加密技术. 它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文. 例,当偏移量是3的时 ...
- python猜数游戏实验报告_python实现猜数游戏
本文实例为大家分享了python实现猜数游戏的具体代码,供大家参考,具体内容如下 一.问题描述: 使用python开发一个猜数小游戏,程序随机产生0~1024之间的数字,用户输入猜测数字,程序告诉用户 ...
- python学生成绩管理系统实验报告_Python实现学生成绩管理系统
本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 基本功能: 输入并存储学生的信息:通过输入学生的学号.姓名.和分数,然后就可以把数据保存在建立的student ...
- python程序设计报告-20192416 实验四《Python程序设计》综合实践报告
20192416 实验四 <Python程序设计> 综合实践报告 课程:<Python程序设计> 班级:1924 姓名:不愿透露姓名的はんたくさん 学号:20192416 实验 ...
最新文章
- SpiderData 2019年2月13日 DApp数据排行榜
- c3p0数据库连接池+mysql数据库基本使用方法
- Condition - Java多线程编程
- 深度学习(二十四)——L2 Normalization, Attention(1)
- OpenCV学习笔记——判断两张图的相似度
- Animate.css介绍
- 学生成绩查询java版_学生成绩查询系统,基于ssm的JAVA系统
- 要想学好前端开发,这五点你一定要知道!
- 启动转换安装失败 拷贝windows安装文件时出错_在Ubuntu16.04下安装MATLAB2017b
- sql顶部菜单项消失_SQL选择顶部
- linux端口映射转发工具- rinetd安装使用
- c语言编译器masm,汇编环境搭建 -- MASM32
- Golden Gate - 概念和机制
- 目标检测之非极大值抑制(NMS)
- 移动app性能测试工具:Emmagee使用介绍
- AD7606分析讲解
- 怎么把PDF页面删除?教你两种方法
- 微信内嵌H5网页 解决js倒计时失效
- 统计软件是其他计算机软件吗,电脑统计软件,statistical computing software,音标,读音,翻译,英文例句,英语词典...
- 最强整理:阿里云大师深入拆解Java虚拟机,经典好文