Python实现简单的计算器
发布时间:2020-12-20 12:54:26 所属栏目:Python 来源:网络整理
导读:废话写在前面: 本人小白初学Python,个人觉得自学编程有些知识点或是语法看的时候很明白,然鹅过了几天不用就会忘,所以打算做点儿小项目来加深印象以便把知识点记牢。 如果只是无脑的照着别人的代码敲,慢慢你会发现其实并没有什么卵用,你只是把代码敲上
废话写在前面: 本人小白初学Python,个人觉得自学编程有些知识点或是语法看的时候很明白,然鹅过了几天不用就会忘,所以打算做点儿小项目来加深印象以便把知识点记牢。 如果只是无脑的照着别人的代码敲,慢慢你会发现其实并没有什么卵用,你只是把代码敲上去了但是却不懂别人为什么要这么写。 自己如果一点儿都不动脑思考那是不行的,当一个具体的需求拿出来让你去实现的时候,你就会发现一点儿思路也没有。 自学最好是自己找个小需求来实现一下,在实现的过程中就会遇到很多问题,这个时候首先找出问题出现在哪里,然后一步一步调试解决问题,最后最后一定要记录整理。 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 简单计算器开发需求: 实现简单的加减乘除运算,以及带括号的优先级解析,并能输出正确的计算结果。 参考Alex大哥的:教学项目之-通过Python实现简单的计算器 ? 分析: 1.首先需要检测用户的输入是否合法,如括号匹配问题 2.由于输入的是字符串,所以需要进行字符串解析,解析出" + - * / ( ) "等符号 3.优先级解析,先计算括号里的内容,在计算乘除运算,最后算加减 ? 1 #! -*- coding utf-8 -*- 2 #! @Time :$[DATE] $[TIME] 3 #! @Author :gg 4 5 import re 6 7 def comupute_mut_and_div(formula): 8 ‘‘‘算乘除‘‘‘ 9 operators = re.findall("[*/]",formula) 10 calc_list = re.split("[*/]",formula) 11 res = None # 细节赋值,第一遍for循环轮空 12 for index,i in enumerate(calc_list): 13 if res: # 第一次这里不执行,所以列表索引不会超出范围 14 if operators[index-1] == "*": 15 res *= float(i) 16 elif operators[index-1] == "/": 17 res /= float(i) 18 else: 19 res = float(i) 20 print(" |