用python实现计算器功能

时间:2021-12-25 01:34:08

我这个项目的码云地址是https://gitee.com/chitu_heshui/personal_project41678.git

表格记录了我预期做这个项目的时间和实际上消耗的时间

PSP2.1 Personal Software ProcessStages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 440 410
Estimate 估计这个任务需要多少时间 440 410
Development 开发 200 180
Analiysis 需求分析(包括学习新技术) 30 20
Design Spec 生成设计文档 20 15
Design Review 设计复审    
Coding Standard 代码规范(为目前的开发制定合适的规范) 20 15
Design 具体设计 20 20
Coding 具体编码 60 70
Test 测试(自我测试,修改代码,提交修改) 30 30
Reporting 报告    
Test Repor 测试报告    
Size Measurement 计算工作量    
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 60 60
  合计 440 410

 

                                                                                计算器的流程图

用python实现计算器功能

 

 

 

写这个计算器的时候遇到了正则表达式来判断输入的值,这是上学期在数据结构学到的但是忘了,所以就在百度上找了一些博客来学习,

还有就是加减乘除出运算时处理的函数也是在百度上找的,自己研究了好久,挺好玩的,

这是从命令提示行获取代码:

parser=argparse.ArgumentParser(description='Process some inteqers.')
parser.add_argument("one",type=str)
args=parser.parse_args()

String = args.one

这是运算的部分代码:

def getValue(exp):
def value(exp, i):
deque = []
pre = 0
while i < len(exp) and exp[i] != ')':
if ord(exp[i]) >= ord('0') and ord(exp[i]) <= ord('9'):
pre = pre * 10 + int(exp[i])
i += 1
elif exp[i] != '(':
addNum(deque, pre)
deque.append(exp[i])
i += 1
pre = 0
else:
bra = value(exp, i + 1)
pre = bra[0]
i = bra[1] + 1
addNum(deque, pre)
return [getNum(deque), i]

 这是正则判断的代码:

 jisuan=re.compile("^(\(*\d+(.\d+)*\)*(\+|-|/|\*))+\d+(.\d+)*\)*$")

程序会获取从命令行输入的字符串并将其从命令行窗口显示出来

用python实现计算器功能

 

 

我遇到了一个问题就是test测试的时候定义方法名字的时候必须要以test_开头,否则就不会测试,测试用例,这个坑我踩了好久

用python实现计算器功能

 

总结:通过大伟老师安排我软件工程这门课,深深体会到有些东西必须得经历的,就是(趟坑)坑踩多了就好了,这是一个过程,使得我们如何快速的解决问题,要养成良好的编程习惯。