#-*- coding:utf-8 -*-
#author: Kai Zhang
#string calculation
import re
def mul(factor_1,factor_2):
'''乘法'''
value = float(factor_1) * float(factor_2)
return str(value)
def div(factor_1,factor_2):
'''除法'''
value = float(factor_1) / float(factor_2)
return str(value)
def add(factor_1,factor_2):
'''加法'''
value = float(factor_1) + float(factor_2)
return str(value)
def sub(factor_1,factor_2):
'''减法'''
value = float(factor_1) - float(factor_2)
return str(value)
def muldiv(formula):
'''计算所有乘除'''
formula = formula.replace('/*','/')
formula = formula.replace('*/','/')
muldiv_flag = True
while muldiv_flag:
inside = re.search('\d+\.?\d*[\*\/]-?\d+\.?\d*',formula)
if inside:
inside = inside.group()
number = re.findall('\d+\.?\d*',inside)
if '-' in inside:
number[1] = '-' + number[1]
if '*' in inside:
value = mul(number[0],number[1])
else:
value = div(number[0],number[1])
formula = formula.replace(inside,value)
else:
muldiv_flag = False
return formula
def addsub(formula):
'''计算所有加减'''
formula = formula.replace('--','+')
formula = formula.replace('-+','-')
formula = formula.replace('+-','-')
formula = formula.replace('++','+