基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算


Posted in Python onAugust 05, 2020

方法一

结合lambda表达式、函数调用运算符、标准库函数对象、C++11标准新增的标准库function类型,编写一个简单的计算器,可实现简单的加、减、乘、除、取余二元运算。代码如下:

#include "pch.h"
#include <iostream>
#include <functional>
#include <map>
#include <string>
using namespace std;
 
int add(int i, int j)
{
	return i + j;
}
 
// 使用函数调用运算符
struct divide
{
	int operator()(int i, int j)
	{
		return i / j;
	}
};
 
auto mod = [](int i, int j) {return i % j; };
 
map<string, function<int(int, int)>> binops = 
{
 {"+", add},         // 使用函数指针
 {"-", minus<int>()},       // 使用标准库函数对象
 {"*", [](int i, int j) {return i * j; }}, // 使用未命名的lambda表达式
 {"/", divide()},        // 使用函数调用运算符
 {"%", mod}         // 命名了的lambda表达式
};
 
int main()
{
	int num1, num2;
	string s;
 
	while (cin >> num1)
	{
		cin >> s >> num2;
		cout << num1 << s << num2 << "=" << binops[s](num1, num2) << endl;
	}
 
	return 0;
}

运行结果如下:

基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算

方法二

方法一中使用了很多C++11标准新增的功能,比如关联容容器map使用的列表初始化、标准库function类型、lambda表达式都是C++11标准新增的特性。下面方法二只简单使用了函数指针来实现。

#include "pch.h"
#include <iostream>
#include <functional>
#include <map>
#include <string>
using namespace std;
 
typedef int Func(int, int);
 
int add(int i, int j)
{
	return i + j;
}
 
int subtract(int i, int j)
{
	return i - j;
}
 
int multiply(int i, int j)
{
	return i * j;
}
 
int divide(int i, int j)
{
	return i / j;
}
 
int mod(int i, int j)
{
	return i % j;
}
 
map<string, Func*> binops;
 
int main()
{
	binops.insert(make_pair("+", add));
	binops.insert(make_pair("-", subtract));
	binops.insert(make_pair("*", multiply));
	binops.insert(make_pair("/", divide));
	binops.insert(make_pair("%", mod));
	
	int num1, num2;
	string s;
	while (cin >> num1)
	{
		cin >> s >> num2;
		cout << num1 << s << num2 << "=" << binops[s](num1, num2) << endl;
	}
 
	return 0;
}

运行结果:

基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算

到此这篇关于基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算的文章就介绍到这了,更多相关Python计算器程序内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python使用代理抓取网站图片(多线程)
Mar 14 Python
python实现批量改文件名称的方法
May 25 Python
深入理解Python中各种方法的运作原理
Jun 15 Python
MySQL中表的复制以及大型数据表的备份教程
Nov 25 Python
python数据预处理之将类别数据转换为数值的方法
Jul 05 Python
Python基础学习之常见的内建函数整理
Sep 06 Python
python批量设置多个Excel文件页眉页脚的脚本
Mar 14 Python
python dataframe astype 字段类型转换方法
Apr 11 Python
PyCharm代码格式调整方法
May 23 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
Jun 20 Python
python多进程下实现日志记录按时间分割
Jul 22 Python
利用python下载scihub成文献为PDF操作
Jul 09 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
Aug 05 #Python
Node.js 和 Python之间该选择哪个?
Aug 05 #Python
基于python图书馆管理系统设计实例详解
Aug 05 #Python
基于Python的一个自动录入表格的小程序
Aug 05 #Python
Python中logging日志记录到文件及自动分割的操作代码
Aug 05 #Python
Python如何读写字节数据
Aug 05 #Python
python中Django文件上传方法详解
Aug 05 #Python
You might like
树型结构列出指定目录里所有文件的PHP类
2006/10/09 PHP
在PHP中设置、使用、删除Cookie的解决方法
2013/05/06 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
PHP处理Ajax请求与Ajax跨域问题
2017/02/13 PHP
php依赖注入知识点详解
2019/09/23 PHP
jQuery学习基础知识小结
2010/11/25 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
JavaScript中this详解
2015/09/01 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
Vue组件之自定义事件的功能图解
2018/02/01 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
python pytest进阶之fixture详解
2019/06/27 Python
Python 3 判断2个字典相同
2019/08/06 Python
django使用channels实现通信的示例
2020/10/19 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
如何利用Python写个坦克大战
2020/11/18 Python
canvas像素点操作之视频绿幕抠图
2018/09/11 HTML / CSS
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
法学毕业生自荐信
2013/11/13 职场文书
优秀应届毕业生自荐信
2013/11/16 职场文书
英语演讲稿3分钟
2014/04/29 职场文书
建筑工地宣传标语
2014/06/18 职场文书
2014年学校党建工作汇报材料
2014/11/02 职场文书
2015国庆节66周年演讲稿
2015/03/20 职场文书
公司员工培训管理制度
2015/08/04 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
python中pymysql包操作数据库方法
2022/04/19 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python