基于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 splitlines使用技巧
Sep 06 Python
numpy中实现二维数组按照某列、某行排序的方法
Apr 04 Python
python3下实现搜狗AI API的代码示例
Apr 10 Python
Python爬虫PyQuery库基本用法入门教程
Aug 04 Python
Django接收post前端返回的json格式数据代码实现
Jul 31 Python
Pytorch之卷积层的使用详解
Dec 31 Python
django商品分类及商品数据建模实例详解
Jan 03 Python
4行Python代码生成图像验证码(2种)
Apr 07 Python
Python爬虫简单运用爬取代理IP的实现
Dec 01 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
Mar 01 Python
python实现简单石头剪刀布游戏
Oct 24 Python
详解Python中__new__方法的作用
Mar 31 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基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
php给图片添加文字水印方法汇总
2015/08/27 PHP
php简单实现数组分页的方法
2016/04/30 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
javascript处理table表格的代码
2010/12/06 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
js操作iframe父子窗体示例
2014/05/22 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
JavaScript 基本概念
2015/01/20 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
基于JavaScript实现在新的tab页打开url
2016/08/04 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
Python中使用strip()方法删除字符串中空格的教程
2015/05/20 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
selenium+python自动化测试之环境搭建
2019/01/23 Python
纯python进行矩阵的相乘运算的方法示例
2019/07/17 Python
使用Python实现画一个中国地图
2019/11/23 Python
Python tornado上传文件的功能
2020/03/26 Python
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
公司活动策划方案
2014/01/13 职场文书
《会变的花树叶》教学反思
2014/02/10 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
工厂见习报告范文
2014/10/31 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python