所以我有了使反向波兰表达式工作的代码
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)
然而,我正在为如何为特定的输入提供一些错误消息而苦苦挣扎 目前这个代码只有在每个值后面有一个空格时才有效。 34+那么我会得到7的结果
但我想让它
-自动删除间距
或者代码只在没有间距的情况下工作,如果有间距,则提供错误 我想添加一些代码
^{pr2}$我想解决的第二个问题是,限制使用的运算符 所以它只在有数字和3个运算符(+,-,*)的情况下运行代码。如果有其他运算符或字母,它将显示错误。我的想法是
if x contains something other than "integers and +,-,*:
then print an error
同样,我有关于如何执行它的概念,但没有python关键字知识。在
您应该使用
x.split()
而不是x.split(' ')
,它将从x
中提取除了空格之外的所有内容。在split()
将多个连续空格视为一个空格(因此只有一个分隔符),而split(' ')
将一个空格视为一个分隔符。在区别在于:
鉴于您的代码只处理个位数:
^{pr2}$如果要引发错误:
相关问题 更多 >
编程相关推荐