基于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 列表(List)操作方法详解
Mar 11 Python
Python lambda和Python def区别分析
Nov 30 Python
Python实现多线程HTTP下载器示例
Feb 11 Python
Python实现多并发访问网站功能示例
Jun 19 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
Jan 30 Python
python pytest进阶之conftest.py详解
Jun 27 Python
python 随机森林算法及其优化详解
Jul 11 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
Python操作Sonqube API获取检测结果并打印过程解析
Nov 27 Python
使用Python的Turtle库绘制森林的实例
Dec 18 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
Feb 07 Python
使用tkinter实现三子棋游戏
Feb 25 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编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
JavaScript编程开发中的五个实用小技巧
2010/07/22 Javascript
jQuery 一个图片切换的插件
2011/10/09 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
JS中window.open全屏命令解析及使用示例
2013/12/11 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
javascript转换日期字符串为Date日期对象的方法
2015/02/13 Javascript
JS实现跟随鼠标闪烁转动色块的方法
2015/02/26 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
如何使用Bootstrap创建表单
2017/03/29 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
webpack搭建vue 项目的步骤
2017/12/27 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
2018/03/01 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
react的hooks的用法详解
2020/10/12 Javascript
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
python中if嵌套命令实例讲解
2021/02/25 Python
html5文本内容_动力节点Java学院整理
2017/07/11 HTML / CSS
详解HTML5 Canvas绘制时指定颜色与透明度的方法
2016/03/25 HTML / CSS
3种方式实现瀑布流布局小结
2019/09/05 HTML / CSS
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
小学教师评语大全
2014/04/23 职场文书
爱我中华演讲稿
2014/05/20 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
迟到检讨书范文
2015/01/27 职场文书
创业计划书之家教托管
2019/09/25 职场文书
python-for x in range的用法(注意要点、细节)
2021/05/10 Python