基于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查询mysql中文乱码问题
Nov 09 Python
Python中Collections模块的Counter容器类使用教程
May 31 Python
python抽取指定url页面的title方法
May 11 Python
python进阶之多线程对同一个全局变量的处理方法
Nov 09 Python
Python异常处理知识点总结
Feb 18 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
Dec 27 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
python中关于数据类型的学习笔记
Jul 19 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
Sep 03 Python
python 模拟登陆163邮箱
Dec 15 Python
selenium+headless chrome爬虫的实现示例
Jan 08 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中JSON的使用与转换
2015/01/14 PHP
joomla组件开发入门教程
2016/05/04 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
2017/08/01 PHP
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
JS脚本实现动态给标签控件添加事件的方法
2016/06/02 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
2016/06/03 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
django中使用vue.js的要点总结
2019/07/07 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
举例讲解Python设计模式编程的代理模式与抽象工厂模式
2016/01/16 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
使用Python控制摄像头拍照并发邮件
2019/04/23 Python
Python配置文件处理的方法教程
2019/08/29 Python
Python运行DLL文件的方法
2020/01/17 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
简单了解如何封装自己的Python包
2020/07/08 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
探索欧洲最好的品牌:Bombinate
2019/06/14 全球购物
电子商务专业应届毕业生求职信
2014/06/21 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
教师工作态度自我评价
2015/03/05 职场文书
项目备案申请报告
2015/05/15 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers