Python实现可混合运算的计算器

用Python写一个简单的计算器 首先要明确这个计算器有什么功能:1可以实现加,减,乘,除以及其混合运算;2可以实现储存数据;那么接下来就是要思考怎么做了! 要实现这些功能,就要构思要完成的方法;1加减法的方法;2单个乘法或除法;3多个乘法或除法;4,万一是混合运算,要写一个完成混合运算的方法;5储存数据的方法; 好了,想到这,我们就成功了一半啦!!! 接下来就是完成自己的构思。 1加减法的方法: import re def ad... 阅读详情

        本质上还是把中缀表达式转化为表达式,然后判断运算优先级进行计算。转化的过程我们可以利用栈的先入后出的特性去解决这个问题。

         废话不多说,直接上代码:

# 存储运算符
ops = []
# 存储数字
nums = []


def cal():
    op = ops.pop()
    num1 = nums.pop()
    num2 = nums.pop()
    if op == "+":
        nums.append(num1 + num2)
    elif op == "-":
        nums.append(num2 - num1)
    elif op == "*":
        nums.append(num1 * num2)
    elif op == "/":
        nums.append(num2 / num1)


def main():
    # 输入表达式
    experssion = input("请输入运算表达式:")

    for epn in experssion:
        if epn == "+" or epn == "-":
            while len(ops) > 0 and (ops[-1] == "*" or ops[-1] == "/" or ops[-1] == "+" or ops[-1] == "-"):
                cal()
            ops.append(epn)
        elif epn == "*" or epn == "/":
            while len(ops) > 0 and (ops[-1] == "*" or ops[-1] == "/"):
                cal()
            ops.append(epn)
        elif epn == "(":
            ops.append(epn)
        elif epn == ")":
            while ops[-1] != "(":
                cal()
            ops.pop()
        else:
            nums.append(int(epn))

    while len(ops) > 0:
        cal()

    print(nums.pop())


if __name__ == "__main__":
    main()

Python案例-开发之路-计算器 这篇来讲一讲python实现四则混合运算的计算器案例 以此表达式为例8 * 12 +(6 - ( 5 * 6 - 2) / 77 + 2 )* ( 3 - 7 )+ 8#!/usr/bin/env python # -- coding = 'utf-8' -- # Author Allen Lee # Python Version 3.5.1 # OS Windows 7 """ 计算此表达式 阅读详情

相关推荐

Simple Calculator(简单计算器:算法初阶,代码基础,“纯”手撕)

如果你的目标是编写一个易于理解和维护的代码,第一个calculate函数可能更适合。如果你追求代码的简洁性和效率,第二个calculate函数可能更符合你的需求。两个实现都是有效的,并且都可以作为学习笔记中的示例。选择哪一个取决于你的个人偏好和你对代码质量的要求。如果你想要一个更加平衡的方案,可以考虑结合两个实现的优点,创建一个既高效又易于理解的版本。我个人倾向于第二个实现,因为它更加简洁,并且在现代编程中,效率往往是一个重要的考虑因素。不过,确保你的代码有充分的注释,以提高可读性。回页目录。

m0_57158496的博客 1794

python 实现四则混合运算计算器

四则混合运算计算器 Calculator 2.0 这个是基于四则混合运算计算器 Calculator的修改版,新增了处理()的功能 调试次数较少,应该尚有bug未发现,如果发现有Bug,欢迎大家来评论指正 四则混合运算计算器:Calculator 1.0 链接 源代码如下 import time#获取程序运行时间 start = time.clock() class Calculator(obj...

qq_45894553的博客 4064

qupath再度更新:使用WSInfer进行深度学习

我们在下面提供了一个示例,说明如何使用 WSInfer 创建 WSI 中肿瘤和肿瘤浸润淋巴细胞 (TIL) 的空间图谱,这些图谱被认为在几种癌症中既有预后又有预测意义6,10,11,12.由于 WSI 非常大,因此它们通常被分解为补丁,以使分析变得可行。补丁分类的输出通常是空间分类地图,通常可以跨 WSI 集成,以创建表示该幻灯片的诊断、预测或“分数”的单个输出。在当前的实施中,我们专注于斑块分类的通用任务,该任务广泛用于广泛的病理学应用,具有促进诊断、预后或预测功能的深度学习模型。

hx2024的博客 2199

计算加减乘除混合运算python实现_python,实现计算器程序,加减乘除混合运算加括号,完善实现...

作业:要求实现一个由键盘输入表达式,计算结果的小程序.import re#detect error inputs = input("Expression:")s = re.sub('\s',"",s)if re.findall('[^0-9\+\-\*/\)\(]',s):print("Error input,Stop!")exit()def judge1(sign):if sign == '*'...

weixin_39814454的博客 341

HTML入门(详细教程),前端入门从这里开始

HTML基础教程,网页框架搭建,表单制作,了解HTML标签的基本用法,每个标签具备哪些属性。

wandertp的博客 1283

Yolov5实现道路裂缝检测

Yolov5实现道路裂缝检测 参考代码链接 Github代码链接 基于Pytorch的Yolov5道路裂缝检测程序运行说明。大家可以结合我的说明和原文说明使用,有问题欢迎询问。 文章目录Yolov5实现道路裂缝检测环境要求测试训练自己的数据集1.创建dataset.yaml文件2.创建标签文件3.组织文件路径4.选择模型5.开始训练 环境要求 Python 3.8或之后的版本 还要安装requirements.txt文件中所有依赖包,包括1.7及以上版本的torch $ pip install -r req

qq_26751379的博客 2万+

python 四则混合运算计算器

四则混合运算计算器Calculator 思路:(1)获取一个运算公式(四则混合) (2)对获取的公式进行处理,因为Input获取的是字符串形式,这里处 理时将之转换成列表,并对其中包含的多位数进行处理.见DealFormula函数 (3)对处理后返回的计算式列以此进行先乘除后加减操作得到最终结果 附:这里的函数Fun_Mul,Fun_Div,Fun_Sub个人感觉能进行更适当的处理, 但由于水平问...

qq_45894553的博客 4877

ZYNQ平台上基于SGMII接口的IEEE1588/PTP协议高效实现方案

本文深入探讨了在Xilinx ZYNQ平台上,利用SGMII接口实现高精度IEEE1588/PTP协议的方案。通过将硬件时间戳单元集成在PL端的AXI以太网子系统IP核中,该方案绕过了软件协议栈和外部PHY的延迟,实现了亚微秒级的时间同步精度。文章详细解析了硬件设计、Vivado IP配置、Linux驱动移植及PTP协议栈部署等关键步骤,为工业控制、通信等领域的高精度网络同步提供了高效、灵活的解决路径。

q5r6s7的博客 604

python新手一定要试试——终端计算器(带括号的加减乘除求幂混合运算)

从终端实现加、减、乘、除、求幂混合运算(带括号);数字与符号前后需空格(一个完整数字或符号内部不加空格,比如12、求幂符号);本身没有实际意义,分享解决问题的思路和转化为编程语言的技巧。

weixin_45221012的博客 2585

realsense D455深度相机+YOLO V5结合实现目标检测(一)

realsense D455深度相机+YOLO V5结合实现目标检测代码来源环境配置代码分析:1.如何用realsense在python下面调用的问题:2.对main_debug.py文件的分析:结束语 可以实现将D435,D455深度相机和yolo v5结合到一起,在识别物体的同时,还能测到物体相对与相机的距离。 说明一下为什么需要做这个事情?1.首先为什么需要用到realsense D455深度相机? 因为他是普通的相机还加了一个红外测距的东西,所以其他二维图像一样,能够得到三维世界在二维像素平面的投影

文一生 3万+

STM32实战开发(66):STM32图像处理开发教程

随着物联网、人工智能和嵌入式技术的不断发展,图像处理技术在嵌入式系统中的应用越来越广泛。图像处理不仅在视觉识别、安防监控、智能家居等领域中发挥着重要作用,也在工业自动化、医疗成像、无人驾驶等高科技领域中占据重要地位。而STM32凭借其强大的硬件性能和丰富的外设支持,成为了许多图像处理应用的理想平台。

2201_76125393的博客 1444

python-24:四则计算器

import redef input_check(): # 算式输入检测审while True: s=input('输入算式或退出(Q)--->>') # 1.除去空格s = s.replace(' ', '') if s[0]=='Q': exit('...

dianliuli4966的博客 291

黑猫带你学UFS协议第13篇:UFS初始化详解(Boot Operation)

本文详细解析了UFS设备的初始化过程,包括部分初始化、加载启动代码(可选)和初始化完成三个阶段。重点介绍了如何通过设备描述符和逻辑单元描述符配置引导特性,以及如何从UFS设备加载启动代码。内容适用于嵌入式硬件和存储领域的开发者。

黑猫奥利奥的博客 3554

简单计算器的设计和实现

简单计算器的设计和实现 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使

m0_49536288的博客 2272

广东省道路工程检测练习试题(判断题)真题

按下式计算小于某粒径颗粒质量百分数:X=(A/B)x100( )49.、挖坑灌砂法适用于在现场测定基层(或底基层)、砂石路面及路基土的各种材料压实层的密度和压实度,但不适用于填石路堤等有大孔洞或大孔隙材料的压实度检测。95.挖坑灌砂法适用于在现场测定基层(或底基层)、砂石路面及路基土的各种材料压实层的密度和压实度,但不适用于填石路堤等有大孔洞或大孔隙材料的压实度检测( )107.以干密度 pd 为纵坐标,含水率w为横坐标,绘 pd-w 关系曲线,曲线上峰值点的纵、横坐标分别为最大干密度和最佳含水率( )

ZShy001238的博客 681

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

简单计算器(python基础代码撰写)

简单计算器:仅适用无括号加减乘除,算法初阶,代码基础,不调库或模块“纯”手撕。 (笔记模板由python脚本于2024年09月22日 12:08:02创建,本篇笔记适合喜欢用python解决实际问题的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单…… 地址:https://lqpybook.readthedocs.io/   自学并不是

m0_57158496的博客 4189

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python实现的复杂的计算器的代码

用Python实现复杂的计算器,可以按照“()”、乘除、加减的优先级进行混合运算。主旨是对正则表达式进行学习。 设计思路:   1.在计算式中搜索最后一个“(”,再搜索和它匹配的“)”,截取两个括号间的表达式cul。   2.乘除的优先级高,循环搜索cul内的乘除号,进行计算后进行加减计算,得到结果ans。   3.用ans替换“(cul)”,重新搜索括号,知道将输入的公式简化成没有括号的...

weixin_30702887的博客 1496

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python标准计算器思路_Python利用正则表达式实现计算器算法思路解析

(1)不使用eval()等系统自带的计算方法(2)实现四则混合运算、括号优先级解析思路:1、字符串预处理,将所有空格去除2、判断是否存在括号运算,若存在进行第3步,若不存在则直接进入第4步3、利用正则表达式获取最底层括号内的四则运算表达式4、将四则运算表达式进行预处理:表达式开头有负数时,在表达式前加上一个05、利用re.split()、re.findall()方法,通过加减符号,对四则运算进行拆...

weixin_39840111的博客 83

Project1 计算器的设计与实现

Day1 计算器的设计与实现 实验要求: 能通过设计的按钮控件输入并实现简单算术运算,要求 表达式在编辑框中显示,能将运算结果,输出在编辑框 内显示; 能够实现混合运算的求解,算术表达式中包括加、减、乘、除、括号等运算符;并且能够识别括号,优先级正确 并保存历史的表达式运算记录。 前期准备:图形界面的开发,例如Microsoft Visual Studio. PS:MFC编程时用静态编译,这样编译出来的EXE文件可以独立于环境运行。 相关难点: 中缀表达式转换成后缀表达式: 相关链接:中缀表达式转换为后

s_alted的博客 366

Java正则表达式实现计算器_Python利用正则表达式实现计算器算法思路解析

(1)不使用eval()等系统自带的计算方法(2)实现四则混合运算、括号优先级解析思路:1、字符串预处理,将所有空格去除2、判断是否存在括号运算,若存在进行第3步,若不存在则直接进入第4步3、利用正则表达式获取最底层括号内的四则运算表达式4、将四则运算表达式进行预处理:表达式开头有负数时,在表达式前加上一个05、利用re.split()、re.findall()方法,通过加减符号,对四则运算进行拆...

weixin_26808023的博客 167

计算机软件实习项目一 基于Java/Swing 的四则运算计算器

实验一 基于Java/Swing 的四则运算计算器

LGD_6194的博客 674

python学习DAY2迷你文本计算器、 列表数据筛选器

本文包含两个编程挑战:1)迷你文本计算器程序,接收两个数字字符串和运算符,执行相应计算并处理错误输入;2)列表数据筛选器,从混合列表中筛选出所有偶数。两个程序分别演示了字符串转换、条件判断和列表遍历等基本编程技巧。第一个程序能处理四则运算和除零错误,第二个程序能正确过滤非整数元素并判断偶数。

yyhdream的博客 365

python标准计算器思路_[宜配屋]听图阁

(1)不使用eval()等系统自带的计算方法(2)实现四则混合运算、括号优先级解析思路:1、字符串预处理,将所有空格去除2、判断是否存在括号运算,若存在进行第3步,若不存在则直接进入第4步3、利用正则表达式获取最底层括号内的四则运算表达式4、将四则运算表达式进行预处理:表达式开头有负数时,在表达式前加上一个05、利用re.split()、re.findall()方法,通过加减符号,对四则运算进行拆...

weixin_39521808的博客 68
上一篇: 计算机网络第二章-物理层
下一篇: 二分+优先队列例题总结(icpc vp+牛客小白月赛)
看繁星aa
博客等级 码龄4年 922粉丝 55原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值