zoukankan      html  css  js  c++  java
  • calc

    import re
    def AP(formula):
      formula = formula.replace('+-','-')
      formula = formula.replace('-+','-')
      formula = formula.replace('--','+')
      return formula
    def compute_MD(formula):   ope = re.findall('[*/]',formula)   mun = re.split('[*/]',formula)   for index,i in enumerate(ope):     mun[index]=float(mun[index])   while ope!=[]:     if ope[index] == '*':       mun[index] *= float(mun[index+1])
    del mun[index+1],ope[index]   elif ope[index] == '/':   mun[index] /= float(mun[index+1])
    del mun[index+1],ope[index]   return mun[index]
    def compute_AP(f1,f2):   for index,i in enumerate(f1):     f2[index] = float(f2[index])   while len(f1) > 0:   if f1[index] == '-':     f2[index]-=float(f2[index+1])
        del f2[index+1],f1[index]   else:     f2[index] += float(f2[index + 1])     del f2[index +1], f1[index]   return f2[index]
    def compute(formula):   formula = AP(formula)   ope = re.findall('[+-]',formula)   mun = re.split('[+-]',formula)   for index,i in enumerate(mun):     if mun[index] == '':     mun[index+1] = '-' + mun[index + 1]   del mun[index],ope[index]   while mun[index].endswith('/') or mun[index].endswith('*'):     mun[index+1] = AP('-' + mun[index]+mun[index+1])     del mun[index],ope[index]   for index,i in enumerate(mun):     if i.find('*')>0 or i.find('/')>0 :       mun[index] = compute_MD(i)   if ope == []:     return mun[index]   return compute_AP(ope,mun)
    def calc(formula):   parenthesise_flag = True   while parenthesise_flag:     formula = formula.replace(' ','')     m = re.search('([^()]+)',formula)     if m:       m2 = str(compute(m.group().strip('()')))       formula = formula.replace(m.group(),m2)     else:       formula = compute(formula)       parenthesise_flag = False     return formula
    if __name__ == '__main__': res = calc(''' 公式内容 ''') print('结果:',res)

      

  • 相关阅读:
    [转]MyBatis传入多个参数的问题
    【转】赶集网mysql开发36军规
    C#套接字和windowsAPI套接字
    java中的注解
    java中的枚举类型
    过去的汇编代码
    近日错误集锦
    java swing模仿随机频谱
    java泛型中的对象
    XML-RPC远程方法调用
  • 原文地址:https://www.cnblogs.com/Leaders543/p/11724141.html
Copyright © 2011-2022 走看看