-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCalculator.py
More file actions
91 lines (76 loc) · 2.34 KB
/
Calculator.py
File metadata and controls
91 lines (76 loc) · 2.34 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
from Shift15.Restart_Function import confirm_restart
print("Don't enter fractions. ")
class SetNums:
def __init__(self, first, second):
self.first = first
self.second = second
def adding(self):
result = self.first + self.second
if result.is_integer():
result1 = int(result)
return result1
else:
return result
def subtracting(self):
result = self.first - self.second
if result.is_integer():
result1 = int(result)
return result1
else:
return result
def multiplying(self):
result = self.first * self.second
if result.is_integer():
result1 = int(result)
return result1
else:
return result
def dividing(self):
result = self.first / self.second
if result.is_integer():
result1 = int(result)
return result1
else:
return result
def exponent(self):
result = self.first ** self.second
if result.is_integer():
result1 = int(result)
return result1
else:
return result
def usernums():
while True:
try:
user_num = float(input("Enter a number: "))
break
except ValueError:
print("Please try again.")
return user_num
def sign():
while True:
signs = ["+", "-", "*", "/", "^"]
operator_sign = input("Type either +, -, *, /, or ^: ")
operator_sign1 = operator_sign.strip()
if operator_sign1 not in signs:
print("Please try again.")
else:
break
return operator_sign1
while True:
while True:
num1 = usernums()
users_sign = sign()
num2 = usernums()
calculate_by = SetNums(num1, num2)
operations = {"+": calculate_by.adding, "-": calculate_by.subtracting, "*": calculate_by.multiplying,
"/": calculate_by.dividing, "^": calculate_by.exponent}
try:
print(operations.get(users_sign)())
break
except ZeroDivisionError:
print("Please try again.")
if confirm_restart() == "yes":
continue
else:
break