给定一个简单的四则运算的多项式,如果把多项式看作一个字符串,试编写程序,自左向右依次输出每个子字符串所对应的多项式的计算结果。例如给定多项式为:1+23*2+3*3,程序输出结果为:1 3 24 47 50 56
key_list = [str(i) for i in range(1, 10)]
def func(str_in):
if len(str_in) == 0:
print 'Input Error 111!'
result = 0
result_f = 0
pos = 0
oper = 0
num_f = 0
num_list = []
oper_list = []
print str_in
while pos < len(str_in):
if pos == 0 and str_in[pos] in key_list:
num = int(str_in[pos])
num_list.append(num)
#print num_list
result = num_list[0]
result_f = 0
print result
elif pos < len(str_in) and str_in[pos] in key_list:
num = int(str_in[pos])
if num_f == 0:
num_f = num
num_list.append(num_f)
else:
num_f = num_f*10 + num
num_list[-1] = num_f
#print num_list
#print oper_list
if oper_list[-1] == 1:
result = result_f + num_list[-1]
else:
result = result_f + num_list[-2] * num_list[-1]
print result
elif pos < len(str_in) and str_in[pos] == '+':
oper = 1
num_f = 0
result_f = result
oper_list.append(oper)
elif pos < len(str_in) and str_in[pos] == '*':
oper = 2
num_f = 0
oper_list.append(oper)
else:
pass
pos += 1
str_in = '1+23*2+3*3'
func(str_in)