所以我的代碼,以使逆波蘭式的工作逆波蘭式 - 監測輸入
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