溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python編寫一個(gè)計(jì)算器程序,實(shí)現(xiàn)加減乘除和取余二元運(yùn)算的方法有哪些

發(fā)布時(shí)間:2020-08-10 11:25:36 來源:億速云 閱讀:489 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹Python編寫一個(gè)計(jì)算器程序,實(shí)現(xiàn)加減乘除和取余二元運(yùn)算的方法有哪些,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

方法一

結(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é)果如下:

Python編寫一個(gè)計(jì)算器程序,實(shí)現(xiàn)加減乘除和取余二元運(yùn)算的方法有哪些

方法二

方法一中使用了很多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é)果:

Python編寫一個(gè)計(jì)算器程序,實(shí)現(xiàn)加減乘除和取余二元運(yùn)算的方法有哪些

以上是Python編寫一個(gè)計(jì)算器程序,實(shí)現(xiàn)加減乘除和取余二元運(yùn)算的方法有哪些的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI