Python对一元二次方程ax^2+bx+c=0设计一个类名为Equation的类,包括:(1)代表3个系数的成员变量a,b,c(2)一个名为getDiscriminant()的方法返回判别式的值(3)一个名为getRoot1和getRoot2的方法返回等式的两个根,如果判别式为负,这些方法返回0
时间: 2024-03-20 16:38:38 浏览: 78
Python实现求解一元二次方程的方法示例
5星 · 资源好评率100%
好的,这是基于您的要求编写的Equation类的代码:
```python
class Equation:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def getDiscriminant(self):
"""计算判别式"""
return self.b ** 2 - 4 * self.a * self.c
def getRoot1(self):
"""计算第一个根"""
delta = self.getDiscriminant()
if delta < 0:
return 0
else:
return (-self.b + delta ** 0.5) / (2 * self.a)
def getRoot2(self):
"""计算第二个根"""
delta = self.getDiscriminant()
if delta < 0:
return 0
else:
return (-self.b - delta ** 0.5) / (2 * self.a)
```
使用该类时,首先需要创建一个Equation对象,然后调用getDiscriminant、getRoot1和getRoot2方法来获取判别式和方程的两个根。例如,假设我们要解方程2x^2+3x+1=0,代码如下:
```python
eq = Equation(2, 3, 1)
print(f"判别式的值为:{eq.getDiscriminant()}")
print(f"第一个根为:{eq.getRoot1()}")
print(f"第二个根为:{eq.getRoot2()}")
```
输出结果为:
```
判别式的值为:1
第一个根为:-0.5
第二个根为:-1.0
```
如果判别式为负,则getRoot1和getRoot2方法将返回0。希望这个类能够满足您的需求。如果您有任何其他的问题,欢迎随时向我提出。
阅读全文