我正在编写一个小型计算器(带有前缀符号),我很好奇如何将前缀符号转换为中缀符号。我目前有一个功能,但它很奇怪,我不知道如何修复它。通过变得奇怪,我的意思是如果给出['+', x, y]
它会返回(() + x + () + y)
,这让我感到困惑。这是代码。
def pre_in(read):
#print read
tempOp = read[0]
body = read[1:]
expr = []
for i in range(len(body)-1):
if not isinstance(body[i], list) and body[i] != " ":
expr.append(str(body[i]))
expr.append(tempOp)
else:
expr.append(str(pre_in(body[i])))
expr.append(tempOp)
try:
if not isinstance(body[-1], list):
expr.append(str(body[-1]))
else:
expr.append(str(pre_in(body[-1])))
except:
pass
if expr != None: return "("+' '.join(expr)+")"
我究竟做错了什么?