python代码,设计一个描述一元二次方程的类,并添加异常处理
时间: 2024-03-27 09:35:01 浏览: 111
好的,以下是一个Python程序示例,描述一元二次方程的类,并添加了异常处理:
```python
class QuadraticEquation:
def __init__(self, a, b, c):
if a == 0:
raise ValueError("a cannot be zero!")
else:
self.a = a
self.b = b
self.c = c
def calculate_discriminant(self):
return self.b ** 2 - 4 * self.a * self.c
def calculate_root(self, i):
if i == 1:
return (-self.b + (self.calculate_discriminant() ** 0.5)) / (2 * self.a)
elif i == 2:
return (-self.b - (self.calculate_discriminant() ** 0.5)) / (2 * self.a)
else:
raise ValueError("i must be 1 or 2!")
try:
eq = QuadraticEquation(0, 1, 2)
root1 = eq.calculate_root(1)
root2 = eq.calculate_root(2)
print("The roots are:", root1, root2)
except ValueError as e:
print(e)
```
这个程序创建了一个QuadraticEquation类,它接受三个参数a,b和c,这些参数描述一元二次方程。在初始化期间,程序检查a是否为零,如果为零,则引发ValueError异常。
该类还有两个方法:calculate_discriminant用于计算判别式,calculate_root用于计算方程的根。在calculate_root中,如果参数i不为1或2,则引发ValueError异常。
在主程序中,我们创建了一个QuadraticEquation对象,其中a为零,这将导致ValueError异常。我们使用try/except语句捕获该异常并打印错误消息。
阅读全文