My assignment calls for the program to be edited to handle the “^” symbol. the hint is that it should be done with just one line of code. Here is the assignment: Modify the infix-to-postfix algorithm to handle exponentiation. Use the ^ symbol as the input token for testing.
Q-14: Modify the infixToPostfix function so that it can convert the following expression: 5 * 3 ^ (4 - 2) Here is the code : class Stack: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def push(self, item): self.items.insert(0,item) def pop(self): return self.items.pop(0) def peek(self): return self.items[0] def size(self): return len(self.items) def infixToPostfix(infixexpr): prec = {} prec["^"] = 3 prec["*"] = 3 prec["/"] = 3 prec["+"] = 2 prec["-"] = 2 prec["("] = 1 opStack = Stack() postfixList = [] tokenList = infixexpr.split() for token in tokenList: if token in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" or token in "0123456789": postfixList.append(token) elif token == '(': opStack.push(token) elif token == ')': topToken = opStack.pop() while topToken != '(': postfixList.append(topToken) topToken = opStack.pop() else: while (not opStack.isEmpty()) and \ (prec[opStack.peek()] >= prec[token]): postfixList.append(opStack.pop()) opStack.push(token) while not opStack.isEmpty(): postfixList.append(opStack.pop()) return " ".join(postfixList) print(infixToPostfix("5 * 3 ^ (4 - 2)")) print(infixToPostfix("( A + B ) * C - ( D - E ) * ( F + G )”)) this is the lien that i added: prec["^"] = 3 i also replaced the infixtopostfix to the problem: ("5 * 3 ^ (4 - 2)”)) here is the error I am getting : Traceback (most recent call last): File "/Users/stephaniequiles/Downloads/Listings/listing_3_7.py", line 53, in <module> print(infixToPostfix("5 * 3 ^ (4 - 2)")) File "/Users/stephaniequiles/Downloads/Listings/listing_3_7.py", line 45, in infixToPostfix (prec[opStack.peek()] >= prec[token]): KeyError: '(4' Process finished with exit code 1 Please advise. not sure where i am failing with this Thanks!! Stephanie _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor