基于Python編寫一個(gè)計(jì)算器程序,實(shí)現(xiàn)簡(jiǎn)單的加減乘除和取余二元運(yùn)算
方法一:
結(jié)合lambda表達(dá)式、函數(shù)調(diào)用運(yùn)算符、標(biāo)準(zhǔn)庫(kù)函數(shù)對(duì)象、C++11標(biāo)準(zhǔn)新增的標(biāo)準(zhǔn)庫(kù)function類型,編寫一個(gè)簡(jiǎn)單的計(jì)算器,可實(shí)現(xiàn)簡(jiǎn)單的加、減、乘、除、取余二元運(yù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ù)調(diào)用運(yùn)算符 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>()}, // 使用標(biāo)準(zhǔn)庫(kù)函數(shù)對(duì)象 {"*", [](int i, int j) {return i * j; }}, // 使用未命名的lambda表達(dá)式 {"/", divide()}, // 使用函數(shù)調(diào)用運(yùn)算符 {"%", mod} // 命名了的lambda表達(dá)式 }; int main() { int num1, num2; string s; while (cin >> num1) { cin >> s >> num2; cout << num1 << s << num2 << "=" << binops[s](num1, num2) << endl; } return 0; }
運(yùn)行結(jié)果如下:
方法二:
方法一中使用了很多C++11標(biāo)準(zhǔn)新增的功能,比如關(guān)聯(lián)容容器map使用的列表初始化、標(biāo)準(zhǔn)庫(kù)function類型、lambda表達(dá)式都是C++11標(biāo)準(zhǔn)新增的特性。下面方法二只簡(jiǎn)單使用了函數(shù)指針來實(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; }
運(yùn)行結(jié)果:
到此這篇關(guān)于基于Python編寫一個(gè)計(jì)算器程序,實(shí)現(xiàn)簡(jiǎn)單的加減乘除和取余二元運(yùn)算的文章就介紹到這了,更多相關(guān)Python計(jì)算器程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 基于Python計(jì)算圓周率pi代碼實(shí)例
- Python計(jì)算開方、立方、圓周率,精確到小數(shù)點(diǎn)后任意位的方法
- Python實(shí)現(xiàn)計(jì)算圓周率π的值到任意位的方法示例
- python計(jì)算圓周率pi的方法
- python使用三角迭代計(jì)算圓周率PI的方法
- 用python實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器(完整DEMO)
- python GUI計(jì)算器的實(shí)現(xiàn)
- python計(jì)算auc的方法
- Python讀取Excel一列并計(jì)算所有對(duì)象出現(xiàn)次數(shù)的方法
- 如何通過python計(jì)算圓周率PI
相關(guān)文章
解決Python下imread,imwrite不支持中文的問題
今天小編就為大家分享一篇解決Python下imread,imwrite不支持中文的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12詳解django+django-celery+celery的整合實(shí)戰(zhàn)
這篇文章主要介紹了詳解django+django-celery+celery的整合實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03使用pyplot.matshow()函數(shù)添加繪圖標(biāo)題
這篇文章主要介紹了使用pyplot.matshow()函數(shù)添加繪圖標(biāo)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python實(shí)現(xiàn)簡(jiǎn)單查找最長(zhǎng)子串功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)簡(jiǎn)單查找最長(zhǎng)子串功能,涉及字符串遍歷、統(tǒng)計(jì)等相關(guān)操作技巧,需要的朋友可以參考下2019-02-02Python filter()及reduce()函數(shù)使用方法解析
這篇文章主要介紹了Python filter()及reduce()函數(shù)使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09一文詳解Python中PO模式的設(shè)計(jì)與實(shí)現(xiàn)
在使用 Python 進(jìn)行編碼的時(shí)候,會(huì)使用自身自帶的編碼設(shè)計(jì)格式,比如說最常見的單例模式等。本文將為大家介紹PageObject自動(dòng)化設(shè)計(jì)模式(PO模式)的設(shè)計(jì)與實(shí)現(xiàn),感興趣的可以了解一下2022-06-06Python打包模塊wheel的使用方法與將python包發(fā)布到PyPI的方法詳解
這篇文章主要介紹了Python打包模塊wheel的使用方法與將python包發(fā)布到PyPI的方法詳解,需要的朋友可以參考下2020-02-02