Skip to content

Commit 89209e1

Browse files
committed
Update app.py
1 parent d5c24ab commit 89209e1

File tree

1 file changed

+60
-66
lines changed
  • Medium-Questions/72-level-2-equations/Python

1 file changed

+60
-66
lines changed
Lines changed: 60 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,74 @@
1-
import os
1+
import os
22
import sys
33
import math
44

55

66
class EquationTwo:
7-
def __init__(self, a, b, c):
8-
self.a = a
9-
self.b = b
10-
self.c = c
11-
12-
13-
def calculate_delta(self) -> float:
14-
# delta = b**2-4ac
15-
self.delta = float((self._b**2)-4*(self._a)*(self._c))
16-
return self.delta
17-
18-
19-
def check_delta(self) -> int:
20-
""" this method return number of answers """
21-
if self.delta == 0:
22-
return 1
23-
elif self.delta > 0:
24-
return 2
7+
def __init__(self):
8+
self.values = {"a": 0, "b": 0, "c": 0, "delta": 0, "answer": 0}
9+
10+
def get_a_b_c(self):
11+
"""This Method Get a,b,c for user"""
12+
13+
def get_float(message: str) -> int:
14+
"""Get Integer Value From user
15+
Only Int"""
16+
while True:
17+
x = input(message)
18+
try:
19+
x = float(x)
20+
if x >= -100 and x <= 100: # −100≤a,b,c≤100
21+
return x
22+
else:
23+
continue
24+
except ValueError:
25+
print("Invalid Value :(\n")
26+
continue
27+
28+
for i in ["a", "b", "c"]:
29+
self.values[i] = get_float(f"Enter {i}:")
30+
31+
def calculateDelta(self):
32+
"""
33+
delta = (b**2)-(4*a*c)
34+
b^2-4ac
35+
"""
36+
a, b, c = self.values["a"], self.values["b"], self.values["c"]
37+
if a != 0 and b != 0:
38+
self.values["delta"] = (b ** 2) - (4 * a * c)
2539
else:
26-
return 0
27-
28-
29-
def calculate_answer(self):
30-
# -b - sqrt(delta) / 2a
31-
# -b + sqrt(delta) / 2a
32-
33-
return [ ((-(self._b) - math.sqrt(self.delta))/2*self._a), (-(self._b) + math.sqrt(self.delta))/2*self._a ]
34-
35-
36-
@property
37-
def a(self):
38-
return a
39-
40-
41-
@a.setter
42-
def set_a(self, value):
43-
if not(value != 0):
4440
print("IMPOSSIBLE")
45-
sys.exit(1)
46-
self._a = value
47-
48-
49-
50-
@property
51-
def b(self):
52-
return b
53-
54-
55-
56-
@b.setter
57-
def set_b(self, value):
58-
if not(value != 0):
41+
sys.exit(0)
42+
43+
def print_answer(self):
44+
a, b, c, delta = self.values["a"], self.values["b"], self.values["c"], self.values["delta"]
45+
print(f"Delta: {delta}")
46+
if delta > 0:
47+
"""
48+
-(b)+(delta)**0.5/2a
49+
-(b)-(delta)**0.5/2a
50+
"""
51+
x1 = (-b + (delta ** 0.5)) / (2 * a)
52+
x2 = (-b - (delta ** 0.5)) / (2 * a)
53+
54+
print(f"X1: {round(x1, 3)}")
55+
print(f"X2: {round(x2, 3)}")
56+
sys.exit(0)
57+
elif delta == 0:
58+
x = -b / (2 * a)
59+
print(f"X: {round(x, 3)}")
60+
sys.exit(0)
61+
else:
5962
print("IMPOSSIBLE")
60-
sys.exit(1)
61-
self._b = value
62-
63-
64-
@property
65-
def c(self):
66-
return c
67-
68-
@a.setter
69-
def set_a_value(self, value):
70-
if not (a != 0):
71-
raise ValueError("IMPOSIBLE a cannot be 0")
72-
63+
sys.exit(0)
7364

7465

7566
def main():
76-
EquationTwo(a=0, b=0, c=0)
67+
e = EquationTwo()
68+
e.get_a_b_c()
69+
e.calculateDelta()
70+
e.print_answer()
7771

7872

7973
if __name__ == "__main__":
80-
main()
74+
main()

0 commit comments

Comments
 (0)