-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patheval.py
More file actions
39 lines (28 loc) · 695 Bytes
/
Copy patheval.py
File metadata and controls
39 lines (28 loc) · 695 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import operator
dct = {
'+': operator.add,
'-': operator.sub,
'*': operator.mul,
'/': operator.truediv,
'^': operator.pow,
'//': operator.floordiv
}
def func(string):
for k in dct.keys():
if k in string:
return dct[k](int(string.split(k)[0]), int(string.split(k)[1]))
text = "1+(16+28)"
while '(' in text:
inx = -1
last = 0
while text[inx] != '(':
if text[inx] == ')':
last = inx
inx -= 1
left = text[:inx]
right = text[last + 1:] if last != -1 else ''
text = f"{left}{func(text[inx + 1:last])}{right}"
if '(' not in text:
text = f"{func(text)}"
break
print(text)