基于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获取CPU和内存信息的思路与实现(linux系统)
Jan 03 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
Oct 13 Python
Python常用知识点汇总
May 08 Python
Python的CGIHTTPServer交互实现详解
Feb 08 Python
Python面向对象程序设计之继承与多继承用法分析
Jul 13 Python
Python with用法:自动关闭文件进程
Jul 10 Python
Django发送邮件功能实例详解
Sep 02 Python
100行Python代码实现每天不同时间段定时给女友发消息
Sep 27 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
python如何利用paramiko执行服务器命令
Nov 07 Python
仅用几行Python代码就能复制她的U盘文件?
Jun 26 Python
python和Appium的移动端多设备自动化测试框架
Apr 26 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
Email+URL的判断和自动转换函数
2006/10/09 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
js CSS操作方法集合
2008/10/31 Javascript
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
2013/01/16 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
jquery点击切换背景色的简单实例
2016/08/25 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
[03:04]DOTA2超级联赛专访ZSMJ “莫名其妙”的逆袭
2013/05/23 DOTA
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
Python 文件处理注意事项总结
2017/04/10 Python
itchat接口使用示例
2017/10/23 Python
python os用法总结
2018/06/08 Python
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
Python笔记之facade模式
2019/11/20 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
中学生寄语大全
2014/04/03 职场文书
房屋出售授权委托书
2014/10/12 职场文书