D - 简单计算器

用python做简单的计算器,python编写简单计算器 大家好,小编来为大家解答以下问题,用python做简单的计算器,python编写简单计算器,现在让我们一起来看看吧!本人目前是只是一名普通在校大学生,在大二第一学期开设的课程里接触到Python语言与pyqt。本文章所写内容,为本人在Python课程结课考察中所做的小项目——计算器。此计算器的设计参考了win10系统自带的计算器与安卓系统手机计算器。另外,本人并非计算机系学生,所以本文章或许会有许多不合理或不专业之处,还望各位大佬指正。 阅读详情

读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。 

Input

测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。 

Output

对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。 

Sample Input

1 + 2
4 + 2 * 5 - 7 / 11
0

Sample Output

3.00
13.36

问题描述:参见上文。

问题分析:这是一个表达式求值问题,可以用递归来处理,也可以用堆栈来处理。

程序说明:程序中,使用堆栈来处理运算符的优先级,运算符和操作符分别放在两个堆栈中。

参考链接:(略)

/* HDU1237 简单计算器 */
 
#include <iostream>
#include <string>
#include <stack>
#include <cctype>
#include <cstdio>
 
using namespace std;
 
int main()
{
    string s;
    stack<char> op;
    stack<double> operand;
    double operand1, operand2;
 
    while(getline(cin, s) && s != "0") {
        for(int i=0; s[i]; i++) {
            if(isdigit(s[i])) {
                operand1 = 0;
                while(isdigit(s[i])) {
                    operand1 = operand1 * 10 + s[i] - '0';
                    i++;
                }
                i--;
                operand.push(operand1);
            } else if(s[i] == '+' || s[i] == '-') {
                if(op.empty())
                    op.push(s[i]);
                else {
                    char sop = op.top();
                    op.pop();
                    operand2 = operand.top();
                    operand.pop();
                    operand1 = operand.top();
                    operand.pop();
                    if(sop == '+')
                        operand.push(operand1 + operand2);
                    else
                        operand.push(operand1 - operand2);
                    op.push(s[i]);
                }
            } else if(s[i] == '*' || s[i] == '/') {
                char cop = s[i];
                i += 2;
                operand2 = 0;
                while(isdigit(s[i])) {
                    operand2 = operand2 * 10 + s[i] - '0';
                    i++;
                }
                i--;
                operand1 = operand.top();
                operand.pop();
                if(cop == '*')
                    operand.push(operand1 * operand2);
                else
                    operand.push(operand1 / operand2);
            }
        }
 
        while(!op.empty()) {
            char sop = op.top();
            op.pop();
            operand2 = operand.top();
            operand.pop();
            operand1 = operand.top();
            operand.pop();
            if(sop == '+')
                operand.push(operand1 + operand2);
            else
                operand.push(operand1 - operand2);
        }
 
        printf("%.2f\n", operand.top());
    }
 
    return 0;
}

简单的计算器代码 简单的计算器代码 package p1; /* 0,使用步骤3步: 1,打开cmd 使用cd命令进入该文件所在的目录(切换盘符命令如“D:”) 2,编译命令javac MyCalc.java -d ./ 3,运行命令java p1.MyCalc */ import java.awt.*; import java.awt.event.*; import java.math.BigDecimal;... 阅读详情

相关推荐

PTA简单的计算器

  7-1 简单的计算器 (10 分) 编程实现一个简单的计算器,实现两个整数的加、减、乘、除。 注意:输入的数字为整数,可能大于Long.MAX_VALUE (即: 9223372036854775807) 输入格式: 例如输入被除数和除数,除号是“/”: 199818221687230837883277970155607217447/15607605175531087007(除法运算) 输出...

jinyu_mobao的博客 2668

1057:简单计算器

1057:简单计算器 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 一个最简单的计算器,支持+, -, *, / 四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。然而: 如果出现除数为0的情况,则输出:Divided by zero! 如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator! 【输入】 输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*

胖虎很忙 1万+

使用 Qt 实现 D-Bus 适配器

D-Bus 是 Linux 操作系统中广泛使用的进程间通信机制,它通过消息传递的方式实现进程之间的通信。在 Qt 中,我们可以通过 QDBus 类库来实现 D-Bus 的相关操作。首先,我们需要定义一个 D-Bus 接口,用于描述可供外部应用程序调用的函数。假设我们要实现一个简单的计算器功能,我们可以定义一个名为 “com.example.Calculator” 的接口,并包含加、减、乘、除等四个函数。接下来,我们需要在 C++ 代码中实现该接口。至此,我们已经成功实现了一个简单的 D-Bus 适配器。

带你成为别人眼中的大佬! 288

问题 A: 简单计算器

问题 A: 简单计算器 题目描述 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。 输入 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。 输出 对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。 样例输入 30 / 90...

mayuejike的博客 2169

Ubuntu 20.04 server 安装

Ubuntu 20.04 server 安装 前面我们介绍了 Ubuntu Desktop 版本的安装,今天我们来看看 Ubuntu server 版本的安装。Ubuntu Server 版本的安装和 Desktop 有很大的区别,并且全程不能使用鼠标,只能通过键盘。 从光盘或 U 盘启动到 Welcome 界面,选择语言,一般都是使用 English,所以保保持默认,直接按回车即可; 系统检测到了新的版本,问你是否是否更新,这里我们不需要安装新的版本,所以选项 Continue without upda

as900的博客 1万+

DDS信号发生器设计避坑指南:从AD9834配置到巴特沃斯滤波实战

本文详细解析了基于AD9834芯片的DDS信号发生器设计中的关键技术要点与常见陷阱,涵盖时钟源选择、寄存器配置时序、巴特沃斯滤波器设计等核心内容。针对中高频段信号质量优化,提供了实用的解决方案和代码示例,帮助工程师规避设计误区,提升信号发生器的性能和稳定性。

2y3u4i5o6p的博客 781

设计一个简易计算器

#include int main() { int a,b,s; char c; scanf("%d %c %d",&a,&c.&b); switch(c) { case'+'; s =a+b; break; case'-'; s =a-b; break; case'*'; s =a*b; break; case'/'; s =a/b; break;

ygluui14159260的博客 3363

SRAM compiler中Power Gating与Retention的实战配置指南

本文深入解析了在SRAM compiler中配置Power Gating(电源门控)与Retention(数据保持)功能的实战指南。针对低功耗芯片设计,文章详细阐述了如何根据应用场景(如移动AP、IoT设备)权衡开关类型、尺寸、唤醒时序以及保持电压,以实现静态功耗优化与数据可靠性的最佳平衡,并强调了后端实现与签核检查的关键要点。

weixin_29204121的博客 294

一个小小的简单计算器问题,有关于栈的应用

题目大概是这个样子的:  Eg :读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。       Input : 4 + 2 * 5 - 7 / 11 Output : 13.36 很简单的一个题目,但当时写的时候遇到了点玄学问题…… #include #include #include #include #include

StarrYooSkY的博客 347

学习笔记9--智能驾驶的功能安全设计之功能安全设计

本系列博客包括6个专栏,分别为:《自动驾驶技术概览》、《自动驾驶汽车平台技术基础》、《自动驾驶汽车定位技术》、《自动驾驶汽车环境感知》、《自动驾驶汽车决策与控制》、《自动驾驶系统设计及应用》。此专栏是关于《自动驾驶系统设计及应用》书籍的笔记.

FUXI_Willard 1794

【IT小趣闻】免费的DeepSeek是如何赚钱的?

导语:目前很多的通用人工智能也就是所谓的AGI例如文心一言、豆包、通义千问和最近大火的DeepSeek都是免费给普通用户使用的,对开源商业模式不太熟悉的普通人可不太了解这免费背后的商业套路,下面我们就一起来揭秘。开源模式能降低用户信任成本、加速技术普及,而商业化服务则针对企业级需求。DeepSeek 可通过组合上述策略,在服务开发者社区的同时,满足企业客户的深度需求,实现可持续发展。你也看出来了,上边是DeepSeek生成的,讲的还是挺明白的。

SunMy的博客 1765

D. 实验6-5 简单计算器

D. 实验6-5 简单计算器 题目描述 模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。 输入 输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。 输出 在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。 样例查看模式 正常显示查看格式 输入样例1 1+2*10-10/2= 输出样例1 10 #include<stdio.h&g.

默默无闻但不碌碌无为 857

机器人控制仿真软件:MATLAB Simulink Control System Toolbox_(1).MATLAB基础知识

MATLAB(Matrix Laboratory)是由MathWorks公司开发的一种高性能数值计算和可视化软件。它广泛应用于科学计算、工程设计、信号处理、控制系统设计、图像处理等领域。强大的矩阵运算能力:MATLAB的核心是矩阵运算,能够高效处理大规模的数值数据。丰富的工具箱:MATLAB提供了大量的工具箱,如Control System Toolbox、Simulink、Signal Processing Toolbox等,这些工具箱覆盖了多个应用领域。易于使用的图形界面。

kkchenjj的博客 904

D. 最最最简单的计算器(选择)

一个最简单的计算器,支持+, -, *, / 四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。2. 如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。1. 如果出现除数为0的情况,则输出:Divided by zero!输出只有一行,一个整数,为运算结果。

2401_85560805的博客 348

【学习系列】SAP RAP 16:RAP应用部署集成至Fiori Launchpad 【On-Premise】

本文详细介绍了如何将开发完成的RAP应用部署到S4HANA 2023 On-Premise环境并集成到Fiori Launchpad的完整流程。主要内容包括:1)通过ADT工具创建Fiori项目并配置外部IDE(VSCode);2)使用npm命令部署应用到系统;3)通过事务代码创建语义对象、磁贴目录和目标映射;4)配置PFCG角色分配;5)补充了部署失败解决方案、翻译问题处理、自定义主题设置以及登录页面LOGO修改等内容。文章提供了step-by-step的操作指南,帮助开发者将预览模式的应用正式部署到生产

DeveloperMrMeng的博客 632

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

得力-D991CN函数计算器说明书下载仓库

得力-D991CN函数计算器说明书下载仓库 【下载地址】得力-D991CN函数计算器说明书下载仓库 得力-D991CN函数计算器说明书下载仓库为您提供了这款计算器的详细使用指南,帮助您充分发挥其功能。无论您是初次使用还是需要深入了解其高级功能,这份说明书都能为您提供清晰的指导。通过简单下载和解压文件,您可以快速获取操作步...

gitblog_06745的博客 506

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

得力-D991CN函数计算器说明书下载仓库:轻松掌握高效计算

得力-D991CN函数计算器说明书下载仓库:轻松掌握高效计算 【下载地址】得力-D991CN函数计算器说明书下载仓库 得力-D991CN函数计算器说明书下载仓库为您提供了这款计算器的详细使用指南,帮助您充分发挥其功能。无论您是初次使用还是需要深入了解其高级功能,这份说明书都能为您提供清晰的指导。通过简单下载和解压文件,您...

gitblog_06752的博客 499

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

计算器的测试与调整

今天运行计算器时,发生了一些error。举例,运行1+2=3,清零后在点击=,计算器出现error,原因时出现了几处null值。导致计算器运行出故障。故障时在逻辑运算中,有几处出现null,调试代码用了if函数,抛出tmp和d1不为null值得情况下,进行逻辑运算if (tmp != "" &...

chuoliao8048的博客 484

第三次实验:在centos指令界面使用简单的指令

计算机维修与维护第三次实验报告 实验内容 在CentOS中命令界面下执行简单的命令 实验准备 VMware创建一台虚拟机装好centos7 实验操作 系统安装成功后初次启动系统会默认进入命令行模式的界面,如下图: ![](https://img-blog.csdnimg.cn/20201224230037943.png ●命令执行的基本方式: [ahao@localhost~]$ command [-options] paremeter1 paremeter2 … 命令 选项 参数(1) 参数(2) ●一行

m0_52595759的博客 203

c语言之简单四则运算器

计算器 A(加) S(减法) M(乘) D(除),其他字符退出程序

www.wangpeng.cn 6341

简单计算器 HDU - 1237

读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。 Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。 Output 对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。 Sample Input 1 + 2 4 + ...

jinduo16的博客 333

HDU 1237 简单计算器

简单计算器 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。    Input 测试输入包含若干测试用例,

Puya的博客 449

java 杭电1237简单计算器

简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 18610    Accepted Submission(s): 6562 Problem Description 读入一个只包含 +, -, *, /

hpuzsk的博客 3360
上一篇: F - 字符环
下一篇: E - Train Problem I
郭晋龙
博客等级 码龄6年 940粉丝 449原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭晋龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值