基于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中的五种异常处理机制介绍
Sep 02 Python
python之matplotlib学习绘制动态更新图实例代码
Jan 23 Python
Django objects的查询结果转化为json的三种方式的方法
Nov 07 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
Python Web静态服务器非堵塞模式实现方法示例
Nov 21 Python
python实现的Iou与Giou代码
Jan 18 Python
Python关于__name__属性的含义和作用详解
Feb 19 Python
详解python logging日志传输
Jul 01 Python
python实现mask矩阵示例(根据列表所给元素)
Jul 30 Python
用60行代码实现Python自动抢微信红包
Feb 04 Python
Python Django项目和应用的创建详解
Nov 27 Python
利用For循环遍历Python字典的三种方法实例
Mar 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实现时间轴函数代码
2011/10/08 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
2015/09/29 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
javascript类继承机制的原理分析
2009/09/12 Javascript
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
2015/09/14 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
如何阻止移动端浏览器点击图片浏览
2020/08/29 Javascript
简单介绍Python中的JSON使用
2015/04/28 Python
python简单分割文件的方法
2015/07/30 Python
Python画图学习入门教程
2016/07/01 Python
python去掉行尾的换行符方法
2017/01/04 Python
Python 编码Basic Auth使用方法简单实例
2017/05/25 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
python编写实现抽奖器
2020/09/10 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
应征英语教师求职信
2013/11/27 职场文书
学校采购员岗位职责
2014/01/02 职场文书
老师对学生的评语
2014/04/18 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
高速铁道技术专业求职信
2014/08/09 职场文书
购房意向书
2014/08/30 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
会议主持词开场白
2015/05/28 职场文书
Go归并排序算法的实现方法
2022/04/06 Golang