基于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中json格式数据输出的简单实现方法
Oct 31 Python
python+requests+unittest API接口测试实例(详解)
Jun 10 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
Jul 20 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
Python编程pygame模块实现移动的小车示例代码
Jan 03 Python
10分钟教你用Python实现微信自动回复功能
Nov 28 Python
python实现自动化上线脚本的示例
Jul 01 Python
python 如何去除字符串头尾的多余符号
Nov 19 Python
Python hmac模块使用实例解析
Dec 24 Python
pyenv虚拟环境管理python多版本和软件库的方法
Dec 26 Python
基于Pytorch SSD模型分析
Feb 18 Python
django模型类中,null=True,blank=True用法说明
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 object转数组示例
2014/01/15 PHP
php 问卷调查结果统计
2015/10/08 PHP
php实现微信发红包
2015/12/05 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
2013/05/14 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
python实现html转ubb代码(html2ubb)
2014/07/03 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
计算机系毕业生推荐信
2013/11/06 职场文书
金融专业个人求职信范文
2013/11/28 职场文书
幼儿园消防演练方案
2014/02/13 职场文书
经典促销广告词大全
2014/03/19 职场文书
计划生育工作汇报
2014/10/28 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
起诉书格式范文
2015/05/20 职场文书
时尚女魔头观后感
2015/06/04 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书
MySQL数据库查询之多表查询总结
2022/08/05 MySQL