发布时间:2026-07-02阅读(0)
后缀表达式求值问题:,现在小编就来说说关于python操作方法大全?下面内容希望能帮助到你,我们来一起看看吧!

python操作方法大全
后缀表达式求值问题:
1)创建空栈operandStack用于暂存操作数;
2)将后缀表达式用split方法解析为单词(token)的列表;
3)从左到右扫描单词列表,如果一个单词是操作数,将单词转换为整数int,压入operandStack栈顶;如果单词是一个操作符(*/ -),就是开始求值,从栈顶弹出2个操作数,先弹出的是右操作数,后弹出的是左操作数,计算后将值重新压入栈顶;
4)单词扫描结束后,计算后将值重新压入栈顶;
5)弹出栈顶的值,返回;
class Stack: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def push(self,item): self.items.append(item) def pop(self): return self.items.pop() def peek(self): return self.items[len(self.items)-1] def size(self): return len(self.items) def postfixEval(postfixExpr): operandStack =Stack() tokenList = postfixExpr.split() for token in tokenList: if token in tokenList: if token in 012345678: operandStack.push(int(token)) else: operand2 = operandStack.pop() operand1 = operandStack.pop() result = doMath(token,operand1,operand2) operandStack.push(result) return operandStack.pop()def doMath(op,op1,op2): if op == *: return op1*op2 elif op == /: return op1/op2 elif op == : return op1 op2 else: return op1 - op2postfixExpr = 4 5 6 * print(postfixEval(postfixExpr))
Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图