基于Python編寫一個計算器程序,實現(xiàn)簡單的加減乘除和取余二元運算
方法一:
結合lambda表達式、函數(shù)調用運算符、標準庫函數(shù)對象、C++11標準新增的標準庫function類型,編寫一個簡單的計算器,可實現(xiàn)簡單的加、減、乘、除、取余二元運算。代碼如下:
#include "pch.h"
#include <iostream>
#include <functional>
#include <map>
#include <string>
using namespace std;
int add(int i, int j)
{
return i + j;
}
// 使用函數(shù)調用運算符
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}, // 使用函數(shù)指針
{"-", minus<int>()}, // 使用標準庫函數(shù)對象
{"*", [](int i, int j) {return i * j; }}, // 使用未命名的lambda表達式
{"/", divide()}, // 使用函數(shù)調用運算符
{"%", 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;
}
運行結果如下:

方法二:
方法一中使用了很多C++11標準新增的功能,比如關聯(lián)容容器map使用的列表初始化、標準庫function類型、lambda表達式都是C++11標準新增的特性。下面方法二只簡單使用了函數(shù)指針來實現(xiàn)。
#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編寫一個計算器程序,實現(xiàn)簡單的加減乘除和取余二元運算的文章就介紹到這了,更多相關Python計算器程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決Python下imread,imwrite不支持中文的問題
今天小編就為大家分享一篇解決Python下imread,imwrite不支持中文的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
詳解django+django-celery+celery的整合實戰(zhàn)
這篇文章主要介紹了詳解django+django-celery+celery的整合實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-03-03
使用pyplot.matshow()函數(shù)添加繪圖標題
這篇文章主要介紹了使用pyplot.matshow()函數(shù)添加繪圖標題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python filter()及reduce()函數(shù)使用方法解析
這篇文章主要介紹了Python filter()及reduce()函數(shù)使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09
Python打包模塊wheel的使用方法與將python包發(fā)布到PyPI的方法詳解
這篇文章主要介紹了Python打包模塊wheel的使用方法與將python包發(fā)布到PyPI的方法詳解,需要的朋友可以參考下2020-02-02

