__author__='Alex'#-*-coding:utf-8-*-ImportReImportStringstr="-10+30-20*11+40*21/5-100+70-2*13+14"data_list=[]sym_list=[]data_list= Re.findall ('\d+', str) sym_list= Re.findall ('\d+', str)#print (data_list)#print (sym_list)defAdd (A1,A2,OPR):ifOPR = ='+': Flag=Falsereturna1+A2defSub (A1,A2,OPR):ifOPR = ='-': Flag=FalsereturnA1-A2defMul (A1,A2,OPR):ifOPR = ='*': Flag=TruereturnA1*A2defDiv (A1,A2,OPR):ifOPR = ='/': Flag=Truereturna1/A2ifSym_list[0] = ='-': data_list[0]='-%s'%(Data_list[0]) Sym_list.remove (sym_list[0])Print(data_list)Print(sym_list) whileSym_list.count ('*')! = 0orSym_list.count ('/') !=0: forIinchRange (len (sym_list)):ifSym_list[i] = ='*': Val= Mul (float (data_list[i]), float (data_list[i+1]),'*') Data_list.remove (Data_list[i]) Data_list.remove (Data_list[i]) Data_list.insert (I,va L) Sym_list.remove (Sym_list[i]) Break ifSym_list[i] = ='/': Val= div (float (data_list[i]), float (data_list[i+1]),'/') Data_list.remove (Data_list[i]) Data_list.remove (Data_list[i]) Data_list.insert (I,va L) Sym_list.remove (Sym_list[i]) BreakPrint(data_list)Print(sym_list) whileLen (sym_list) >0: forIinchRange (len (sym_list)):ifSym_list[i] = ='+': Val= Add (float (data_list[i]), float (data_list[i+1]),'+') Data_list.remove (Data_list[i]) Data_list.remove (Data_list[i]) Data_list.insert (i,v AL) Sym_list.remove (Sym_list[i]) Break ifSym_list[i] = ='-': Val= Sub (float (data_list[i]), float (data_list[i+1]),'-') Data_list.remove (Data_list[i]) Data_list.remove (Data_list[i]) Data_list.insert (I,va L) Sym_list.remove (Sym_list[i]) BreakPrint(data_list)Print(sym_list)
Python computes a string without parentheses