Python简易计算器
# 开发一个简单的计算器程序
# 实现对加减乘除、括号优先级的解析,并实现正确运算
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简易计算器相关推荐
- python简易计算器报告_用 Python 实现简易计算器 ( 下 )
上一篇讲了 用 Python 实现一个计算器的前期准备,从新建项目到 PyQt5安装.配置和使用,最后完成了一个比较丑的计算器界面布局. 本篇文章开始详细讲解后续实现计算器功能的讲解. 主要涉及的知识 ...
- python简易计算器报告_python 简易计算器
源代码: from tkinter import * #输入框纯数字验证 def test(content): return content.isdigit() #加法按钮函数 def add(): ...
- [python]简易计算器
主程序 #!/usr/bin/python #coding:utf8 import add,multipy,minus,divisi if __name__=='__main__': prin ...
- python 简易计算器(只能计算加减乘除和括号)
import re# 格式化字符串函数(消除一些错误的格式) def format_string(string):# 一系列的替换语句string = string.replace("--& ...
- python简易计算器教程_python 实现简易计算器
import re from functools import reduce def mul_div(exp): # 计算两个数的乘法或者除法 if '*' in exp: a, b = exp.sp ...
- 如何在python制作计算器_Python简易计算器制作方法代码详解
主要用到的工具是Python中的Tkinter库 比较简单 直接上图形界面和代码 引用Tkinter库 from tkinter import * 建立主窗口对象 window=Tk() #设置窗口对 ...
- 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...
话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...
- python表达式计算器_Python正则表达式实现简易计算器功能示例
本文实例讲述了Python正则表达式实现简易计算器功能.分享给大家供大家参考,具体如下: 需求:使用正则表达式完成一个简易计算器. 功能:能够计算简单的表达式. 如:1*2*((1+2)/(2+3)+ ...
- Python之实现一个简易计算器
自己动手写计算器 一.功能分析 用户输入一个类似这样 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 这样的表达式,假设表达式里 ...
最新文章
- q标签,短文本引用;blockquote标签,长文本引用
- c51单片机矩阵键盘1602计算器_基于51单片机矩阵键盘的简易计算器制作
- java spring 多数据库_java – 使用多个数据源/数据库的Spring-Hibernate
- php 图片不让下载,php简单实现文件或图片强制下载的方法
- 今晚直播:Oracle Nologging 全面总结
- 高斯积分公式matlab_数值微分与数值积分(一)
- IntelliJ Idea一些常用快捷键
- Linux进程管理内核API函数pid_task( )---根据pid获取task_struct
- 易语言锐浪报表连接mysql_学习锐浪报表之MySQL连接字符串的实际操作步骤汇总...
- OTA 差分升级包的制作
- dns按来路ip智能解析_云解析实现智能解析
- win7+Ubuntu20.04双系统硬盘安装指南(含踩坑记录)
- 个推解读 | 各厂商推送消息分类新规出台,APP开发者必看
- 企业如何制作自己的公司网站?
- 数据库关于索引问题(违反唯一约束)
- kafka部署时出现的天坑
- 高等数学学习笔记——第三十二讲——泰勒公式
- 新编日语第四册(修订版)第03课 应用文
- win10系统localhost拒绝访问的解决方法
- 公众号原主体已注销如何办理迁移及公证书?
热门文章
- iso12233测试方法_ISO12233分辨率测试卡的使用方法
- 还在担心网聊相亲的小姐姐,美女变恐龙!Python帮你潜伏侦查
- SafeNet加密软件详细步骤
- 灰度图像的形态学处理
- 第 6 章. 分配图像资源并使用 WSI 构建 Swapchain
- 百度竞价十万个为什么
- 【酒店管理系统】(一)需求分析
- 高职单招面试自我介绍稿子计算机专业,高职单招面试自我介绍范文及面试常考题...
- Windows 7/Windows Server 2008 R2深入核心剖析
- linux虚拟机管理面板,linux 虚拟主机面板(免费虚拟主机控制面板)