-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstack.py
More file actions
103 lines (89 loc) · 2.39 KB
/
stack.py
File metadata and controls
103 lines (89 loc) · 2.39 KB
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
past_calculations =[];
def add(a,b):
return a+b;
def subtract(a,b):
return a-b;
def multiply (a,b):
return a*b;
def remainder(a,b):
return a%b
def history():
if past_calculations:
for index,calc in enumerate(past_calculations):
print(calc);
else:
print("No past calculations to show");
return 0;
def select_op(choice):
if (choice == '?'):
return history()
if (choice == '#'):
return -1
elif (choice == '$'):
return 0
elif (choice in ('+','-','*','/','^','%')):
while (True):
num1s = str(input("Enter first number: "))
print(num1s)
if num1s.endswith('$'):
return 0;
if num1s.endswith('#'):
return -1;
try:
num1 = float(num1s)
break;
except:
print("Not a valid number,please enter again")
continue
while (True):
num2s = str(input("Enter second number: "))
print(num2s)
if num2s.endswith('$'):
return 0;
if num2s.endswith('#'):
return -1;
try:
num2 = float(num2s)
break
except:
print("Not a valid number,please enter again")
continue
result = 0.0
last_calculation = ""
if choice == '+':
result = add(num1, num2);
elif choice == '-':
result = subtract(num1, num2);
elif choice == '*':
result = multiply(num1, num2);
elif choice == '/':
result = divide(num1, num2);
elif choice == '^':
result = power(num1, num2);
elif choice == '%':
result = remainder(num1, num2);
else:
print("Something Went Wrong");
last_calculation = "{0} {1} {2} = {3}".format(num1, choice, num2, result)
print(last_calculation )
past_calculations.append(last_calculation);
else:
print("Unrecognized operation")
while True:
print("Select operation.")
print("1.Add : + ")
print("2.Subtract : - ")
print("3.Multiply : * ")
print("4.Divide : / ")
print("5.Power : ^ ")
print("6.Remainder: % ")
print("7.Terminate: # ")
print("8.Reset : $ ")
print("8.History : ? ")
# take input from the user
choice = input("Enter choice(+,-,*,/,^,%,#,$,?): ")
print(choice)
if(select_op(choice) == -1):
#program ends here
print("Done. Terminating")
exit()