面向对象解决一元二次方程
时间: 2023-10-11 20:08:40 浏览: 48
可以使用面向对象的思想,设计一个解一元二次方程的类。具体实现如下:
```python
class QuadraticEquation:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def solve(self):
delta = self.b ** 2 - 4 * self.a * self.c
if delta < 0:
return "无实数解"
elif delta == 0:
x = -self.b / (2 * self.a)
return x
else:
x1 = (-self.b + delta ** 0.5) / (2 * self.a)
x2 = (-self.b - delta ** 0.5) / (2 * self.a)
return x1, x2
```
在这个类中,`__init__` 方法用于初始化方程的系数 `a`、`b`、`c`,`solve` 方法用于求解方程的根。
当判别式 delta 小于 0 时,方程无实数解,返回字符串 "无实数解"。当 delta 等于 0 时,方程有一个实数解,返回解的值。当 delta 大于 0 时,方程有两个实数解,返回两个解的值。
使用示例:
```python
eq = QuadraticEquation(1, -5, 6)
print(eq.solve()) # (3.0, 2.0)
eq = QuadraticEquation(1, -4, 4)
print(eq.solve()) # 2.0
eq = QuadraticEquation(1, 2, 3)
print(eq.solve()) # 无实数解
```