2
So arbeiten habe ich diesen Code:Python3 - Warum einen Bediener von einem dict Aufruf nicht
def evaluate(expression):
if any(not (c.isdigit() or c.isspace() or c in '(){}[]+-*/') for c in expression):
return
newexp = expression.split()
stack = Stack()
for i in newexp:
if i in ')]}':
arg2 = stack.pop()
operator = stack.pop()
arg1 = stack.pop()
if stack.pop() not in '([{':
return
stack.push({'+': add}[operator](arg1,arg2))
else:
stack.push(i)
#checking
while not stack.is_empty():
print(stack.pop())
n = input('Input expression: ')
evaluate(n)
wenn ich
verwenden'(5 + 2)'
als Eingabe wird die Ausgabe
I
als Antwort bekommen soll.
Dadurch 7
erhalten wird:
print({'+': add}['+'](5,2))
aber ist es nicht eigentlich das gleiche? Kannst du mir sagen, welcher Teil meines Codes falsch ist?
Danke.
Weil Sie mit Streichern arbeiten, keine Zahlen. – wim
oh ja, vielen Dank. – garjted