基于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 生成器生成杨辉三角的方法(必看)
Apr 10 Python
简述Python2与Python3的不同点
Jan 21 Python
python 列表降维的实例讲解
Jun 28 Python
在Python中定义一个常量的方法
Nov 10 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
Dec 05 Python
python网络编程之多线程同时接受和发送
Sep 03 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
Oct 23 Python
python中的itertools的使用详解
Jan 13 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
May 29 Python
Python中生成ndarray实例讲解
Feb 22 Python
浅谈Python中的函数(def)及参数传递操作
May 25 Python
你喜欢篮球吗?Python实现篮球游戏
Jun 11 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
ThinkPHP空模块和空操作详解
2014/06/30 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
2015/08/31 PHP
PHP回调函数简单用法示例
2019/05/08 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
NodeJS 实现手机短信验证模块阿里大于功能
2017/06/19 NodeJs
vue框架搭建之axios使用教程
2018/07/11 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
线程和进程的区别及Python代码实例
2015/02/04 Python
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
使用Python中的cookielib模拟登录网站
2015/04/09 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
大学军训感言
2014/01/10 职场文书
集体婚礼证婚词
2014/01/13 职场文书
体育教师个人的自我评价
2014/02/16 职场文书
向女朋友道歉的话
2015/01/20 职场文书
员工表扬信怎么写
2015/05/05 职场文书
民事上诉状范文
2015/05/22 职场文书
Python中request的基本使用解决乱码问题
2022/04/12 Python