用Python3.6实现计算器的基本功能,如:+,-,*,/,^等。
要注意的是:输入含有括号“()”,小数点 “.”,以及使用内置的float类型会导致计算结果不够精确的问题。
基本思路是:使用逆波兰表达式算法。
代码实现:
from decimal import Decimal
#将输入转化成一个列表
string = input()
args=list(string)
#多位数被按位拆成了多个元素存在列表中,将它们重新整合成一个元素
length =len(args)
i=1
while(i<length):
if(args[i-1]=='(' or args[i-1]==')' or args[i-1]=='+' or args[i-1]=='-' or args[i-1]=='*' or args[i-1]=='/' or args[i-1]=='^'):
i+=1
continue
if(args[i]!='(' and args[i]!=')' and args[i]!='+' and args[i]!='-' and args[i]!='*' and arg