基于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实现按学生年龄排序的实际问题详解
Aug 29 Python
浅谈python 线程池threadpool之实现
Nov 17 Python
python pyheatmap包绘制热力图
Nov 09 Python
对python过滤器和lambda函数的用法详解
Jan 21 Python
Django 自定义404 500等错误页面的实现
Mar 08 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
scrapy中如何设置应用cookies的方法(3种)
Sep 22 Python
Django自带用户认证系统使用方法解析
Nov 12 Python
Pytorch如何切换 cpu和gpu的使用详解
Mar 01 Python
Python基础之tkinter图形化界面学习
Apr 29 Python
opencv检测动态物体的实现
Jul 21 Python
Python 图片添加美颜效果
Apr 28 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
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
php 网上商城促销设计实例代码
2012/02/17 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
js数组转json并在后台对其解析具体实现
2013/11/20 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
关于jquery中attr()和prop()方法的区别
2018/05/28 jQuery
微信小程序实现消息框弹出动画
2020/04/18 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
Python下载指定页面上图片的方法
2016/05/12 Python
django用户登录和注销的实现方法
2018/07/16 Python
python实现两张图片的像素融合
2019/02/23 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
django框架中间件原理与用法详解
2019/12/10 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
2020/02/27 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
canvas像素画板的实现代码
2018/11/21 HTML / CSS
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
教师的实习自我鉴定
2013/12/17 职场文书
旅游网创业计划书
2014/01/31 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
HTML常用标签超详细整理
2022/03/19 HTML / CSS