所以我的代码,以使逆波兰式的工作逆波兰式 - 监测输入
def rpn(x):
stack = []
operators=['+', '-', '*']
for i in x.split(' '):
if i in operators:
op1 = stack.pop()
op2 = stack.pop()
if i=='+': result = op2 + op1
if i=='-': result = op2 - op1
if i=='*': result = op2 * op1
stack.append(result)
else:
stack.append(float(i))
return stack.pop()
x = str(input("Enter a polish expression:"))
result = rpn(x)
print (result)
但是我挣扎于如何为特定输入 目前该代码提供了一些错误信息将只工作,如果我有即每个值后面输入一个空格 3 4 +再生病得到7
结果,但我想让它,这样它要么
- 移除的间距自动
或代码只会无间距工作,如果有间距 提供一个错误我想添加一些代码沿
if x contains " ":
print("error")
我的第二个问题,我正在努力工作线限制使用的操作符 因此,如果它有数字和3个操作符(+, - ,*),如果有其他操作符或字母会显示错误,它将只运行代码。再次我的想法将是
if x contains something other than "integers and +,-,*:
then print an error
再次,我有概念,但没有关于如何执行它的python关键字知识。
没有空格你如何确定一个数字何时结束?除非每个数字都是一个数字。 – AChampion
嗯,我应该提到的确,它只会是单个数字 – Xrin
你可以通过遍历'x.strip()'并放弃空格。 – AChampion