-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpostfix_program.py
34 lines (33 loc) · 976 Bytes
/
postfix_program.py
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
def postfix(value):
stack = []
operator = []
charlist = []
for i in value:
if i == '+' or i == '*' or i == '/' or i == '-':
operator.append(i)
if i.isdigit():
charlist.append(i)
if(len(charlist) < len(operator)):
return "error"
for i in value:
if i.isdigit():
stack.append(int(i))
elif i == '+':
number1 = stack.pop()
number2 = stack.pop()
stack.append(number1+number2)
elif i == '-':
number1 = stack.pop()
number2 = stack.pop()
stack.append(number1-number2)
elif i == '/':
number1 = stack.pop()
number2 = stack.pop()
stack.append(number1/number2)
elif i == '*':
number1 = stack.pop()
number2 = stack.pop()
stack.append(number1*number2)
else:
return False
return stack.pop()