Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 89209e1

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /