basic calculator II
1def calculate(S):
2 S, s, n, p = f"{S}+0", [], 0, "+"
3 ops = {
4 "-": lambda x: s.append(-x),
5 "+": lambda x: s.append(x),
6 "*": lambda x: s.append(s.pop() * x),
7 "/": lambda x: s.append(int(s.pop() / x)),
8 }
9 for i in range(len(S)):
10 if S[i].isdigit():
11 n = n * 10 + int(S[i])
12 elif not S[i].isspace():
13 ops[p](n)
14 n, p = 0, S[i]
15 return sum(s)
16
17print(calculate("3+59*10/100"))