# 开发一个简单的计算器程序
# 实现对加减乘除、括号优先级的解析,并实现正确运算
def cal(num1, num2, op):result = 0.0if op == '+':result = num1 + num2elif op == '-':result = num1 - num2elif op == '*':result = num1 * num2elif op == '/':result = num1 / num2return resultdef cal_prior(operator):int_prior = 0if operator == '+' or operator == '-':int_prior = 1elif operator == '*' or operator == '/':int_prior = 2elif operator == '(':int_prior = 3elif operator == ')':int_prior = 4return int_priorwhile True:str_input = '('+input("请输入需计算的表达式用‘()’包住[q退出]:").replace(" ","")+')'num_list = []      #操作数栈operator_list = [] #符号栈x = 0v = 0if str_input == '(q)':break;for a in str_input:if a.isdigit():x = x * 10 + int(a)  # 数字不是一位数时循环读数v = 1else:if v == 1:num_list.append(x)  # 数字进栈x = 0v = 0if a in ['+', '-', '*', '/', '(', ')']:if len(operator_list) == 0:   #符号栈为空时,待入栈字符直接进栈operator_list.append(a)else:if a == '(':  # '('直接进符号栈operator_list.append(a)elif a == ')':while(operator_list[-1] != '('and len(operator_list)!=0):  # 计算结果,将结果压入数字栈op = operator_list.pop()num2 = num_list.pop()num1 = num_list.pop()result = cal(num1, num2, op)num_list.append(result)operator_list.pop()# if len(operator_list) == 0:  # 符号栈为空时,待入栈字符直接进栈#     operator_list.append(a)else:while len(operator_list) != 0 and cal_prior(operator_list[-1]) >= cal_prior(a) and operator_list[-1] != '(' :op = operator_list.pop()num2 = num_list.pop()num1 = num_list.pop()result = cal(num1, num2, op)num_list.append(result)operator_list.append(a)#输出运算结果if len(operator_list)==0:if len(num_list) == 1:print("运算结果:",num_list)else:print("运算出错!")

Python简易计算器相关推荐

  1. python简易计算器报告_用 Python 实现简易计算器 ( 下 )

    上一篇讲了 用 Python 实现一个计算器的前期准备,从新建项目到 PyQt5安装.配置和使用,最后完成了一个比较丑的计算器界面布局. 本篇文章开始详细讲解后续实现计算器功能的讲解. 主要涉及的知识 ...

  2. python简易计算器报告_python 简易计算器

    源代码: from tkinter import * #输入框纯数字验证 def test(content): return content.isdigit() #加法按钮函数 def add(): ...

  3. [python]简易计算器

    主程序 #!/usr/bin/python #coding:utf8 import add,multipy,minus,divisi if __name__=='__main__':     prin ...

  4. python 简易计算器(只能计算加减乘除和括号)

    import re# 格式化字符串函数(消除一些错误的格式) def format_string(string):# 一系列的替换语句string = string.replace("--& ...

  5. python简易计算器教程_python 实现简易计算器

    import re from functools import reduce def mul_div(exp): # 计算两个数的乘法或者除法 if '*' in exp: a, b = exp.sp ...

  6. 如何在python制作计算器_Python简易计算器制作方法代码详解

    主要用到的工具是Python中的Tkinter库 比较简单 直接上图形界面和代码 引用Tkinter库 from tkinter import * 建立主窗口对象 window=Tk() #设置窗口对 ...

  7. 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...

    话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...

  8. python表达式计算器_Python正则表达式实现简易计算器功能示例

    本文实例讲述了Python正则表达式实现简易计算器功能.分享给大家供大家参考,具体如下: 需求:使用正则表达式完成一个简易计算器. 功能:能够计算简单的表达式. 如:1*2*((1+2)/(2+3)+ ...

  9. Python之实现一个简易计算器

    自己动手写计算器 一.功能分析 用户输入一个类似这样 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 这样的表达式,假设表达式里 ...

最新文章

  1. q标签,短文本引用;blockquote标签,长文本引用
  2. c51单片机矩阵键盘1602计算器_基于51单片机矩阵键盘的简易计算器制作
  3. java spring 多数据库_java – 使用多个数据源/数据库的Spring-Hibernate
  4. php 图片不让下载,php简单实现文件或图片强制下载的方法
  5. 今晚直播:Oracle Nologging 全面总结
  6. 高斯积分公式matlab_数值微分与数值积分(一)
  7. IntelliJ Idea一些常用快捷键
  8. Linux进程管理内核API函数pid_task( )---根据pid获取task_struct
  9. 易语言锐浪报表连接mysql_学习锐浪报表之MySQL连接字符串的实际操作步骤汇总...
  10. OTA 差分升级包的制作
  11. dns按来路ip智能解析_云解析实现智能解析
  12. win7+Ubuntu20.04双系统硬盘安装指南(含踩坑记录)
  13. 个推解读 | 各厂商推送消息分类新规出台,APP开发者必看
  14. 企业如何制作自己的公司网站?
  15. 数据库关于索引问题(违反唯一约束)
  16. kafka部署时出现的天坑
  17. 高等数学学习笔记——第三十二讲——泰勒公式
  18. 新编日语第四册(修订版)第03课 应用文
  19. win10系统localhost拒绝访问的解决方法
  20. 公众号原主体已注销如何办理迁移及公证书?

热门文章

  1. iso12233测试方法_ISO12233分辨率测试卡的使用方法
  2. 还在担心网聊相亲的小姐姐,美女变恐龙!Python帮你潜伏侦查
  3. SafeNet加密软件详细步骤
  4. 灰度图像的形态学处理
  5. 第 6 章. 分配图像资源并使用 WSI 构建 Swapchain
  6. 百度竞价十万个为什么
  7. 【酒店管理系统】(一)需求分析
  8. 高职单招面试自我介绍稿子计算机专业,高职单招面试自我介绍范文及面试常考题...
  9. Windows 7/Windows Server 2008 R2深入核心剖析
  10. linux虚拟机管理面板,linux 虚拟主机面板(免费虚拟主机控制面板)