Толстобров Илья Андреевич 514 IterCalc 5436
Летуновский Кирилл Ефимович 515 IterCalc 5076
f1def itercalc():f1def itercalc():
2    what = (yield None)2    what = (yield None)
n3    stack = []n3    l = []
4    while what:4    while what:
5        match what:5        match what:
6            case '?':6            case '?':
n7                if len(stack) < 1:n7                if len(l) < 1:
8                    print('Insufficient stack')8                    print('Insufficient stack')
9                    what = (yield None)9                    what = (yield None)
10                else:10                else:
n11                    what = (yield stack[-1])n11                    what = (yield l[-1])
12            case '+':12            case '+':
n13                if len(stack) < 2:n13                if len(l) < 2:
14                    print('Insufficient stack')14                    print('Insufficient stack')
15                else:15                else:
n16                    stack[-2] += stack[-1]n16                    l[-2] += l[-1]
17                    stack.pop()17                    l.pop()
18                what = (yield None)18                what = (yield None)
19            case '*':19            case '*':
n20                if len(stack) < 2:n20                if len(l) < 2:
21                    print('Insufficient stack')21                    print('Insufficient stack')
22                else:22                else:
n23                    stack[-2] *= stack[-1]n23                    l[-2] *= l[-1]
24                    stack.pop()24                    l.pop()
25                what = (yield None)25                what = (yield None)
26            case '/':26            case '/':
n27                if len(stack) < 2:n27                if len(l) < 2:
28                    print('Insufficient stack')28                    print('Insufficient stack')
n29                elif stack[-1] == 0:n29                elif l[-1] == 0:
30                    print('Zero division')30                    print('Zero division')
31                else:31                else:
n32                    stack[-2] //= stack[-1]n32                    l[-2] //= l[-1]
33                    stack.pop()33                    l.pop()
34                what = (yield None)34                what = (yield None)
35            case '-':35            case '-':
n36                if len(stack) < 2:n36                if len(l) < 2:
37                    print('Insufficient stack')37                    print('Insufficient stack')
38                else:38                else:
n39                    stack[-2] -= stack[-1]n39                    l[-2] -= l[-1]
40                    stack.pop()40                    l.pop()
41                what = (yield None)41                what = (yield None)
42            case _:42            case _:
43                if what.isnumeric() or (what[0] == '-' and what[1:].isnu43                if what.isnumeric() or (what[0] == '-' and what[1:].isnu
>meric()):>meric()):
t44                    stack.append(int(what))t44                    l.append(int(what))
45                else:45                else:
46                    print('Unknown command')46                    print('Unknown command')
47                what = (yield None)47                what = (yield None)
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op