python设计一个一元二次方程类,并为这个类添加异常处理,并显示
时间: 2023-06-09 13:02:55 浏览: 136
一元二次方程的根。
好的,我已经记录了您的问题。以下是关于Python设计一个一元二次方程类并添加异常处理的代码示例,您可以参考:
```python
import math
class QuadraticEquation:
def __init__(self, a, b, c):
self.__a = a
self.__b = b
self.__c = c
@property
def a(self):
return self.__a
@property
def b(self):
return self.__b
@property
def c(self):
return self.__c
def discriminant(self):
return self.b ** 2 - 4 * self.a * self.c
def root1(self):
dis = self.discriminant()
if dis >= 0:
return (-self.b + math.sqrt(dis)) / (2 * self.a)
else:
raise ValueError("No real root")
def root2(self):
dis = self.discriminant()
if dis >= 0:
return (-self.b - math.sqrt(dis)) / (2 * self.a)
else:
raise ValueError("No real root")
# Test code
try:
eq = QuadraticEquation(1, -3, 2)
print(f"Root 1: {eq.root1()}")
print(f"Root 2: {eq.root2()}")
except ValueError as e:
print(e)
```
这段代码中,我们定义了一个 `QuadraticEquation` 类,它有三个属性 `a`、`b`、`c` 分别代表一元二次方程的系数。`discriminant()` 方法用于计算判别式的值,并在计算根时根据判别式的值分别进行处理,如果没有实根则抛出 `ValueError` 异常。在测试代码中,我们创建了一个 `QuadraticEquation` 对象,并使用 `try...except` 结构来捕获可能会抛出的异常。如果根存在,则程序输出根的值,否则输出异常信息。
希望这个代码可以回答您的问题。
阅读全文