用python设计一个类,名字为QE,QE类是用来计算一元二次方程ax 2 +bx+c=0的平方根。这个类包括: 私有变量a,b和c表示三个系数; 以a,b和c为参数的初始化方法; a,b,c各自的访问方法; 名为get_d()的方法返回判别式,即b 2 −4ac; 名为get_root_1()和get_root_2()的方法分别计算方程的两个根。这些方法只能在判别式b 2 −4ac非负时才有用,判别式为负,则这些方法返回0. 任务:编写这个类,同时编写测试程序,用户输入a、b和c的值,然后按样例显示结果,保留两位小数。如果判别式为正,显示两个根;如果判别式为0,显示一个根;否则,显示“该方程式无根”。 提示:一元二次求根公式: 2a −b± b 2 −4ac
时间: 2024-03-12 18:44:46 浏览: 104
好的,我可以为您演示如何实现这个 QE 类,以下是代码实现:
```python
class QE:
def __init__(self, a, b, c):
self.__a = a
self.__b = b
self.__c = c
def get_a(self):
return self.__a
def get_b(self):
return self.__b
def get_c(self):
return self.__c
def get_d(self):
return self.__b ** 2 - 4 * self.__a * self.__c
def get_root_1(self):
if self.get_d() >= 0:
return (-self.__b + (self.get_d() ** 0.5)) / (2 * self.__a)
else:
return 0
def get_root_2(self):
if self.get_d() >= 0:
return (-self.__b - (self.get_d() ** 0.5)) / (2 * self.__a)
else:
return 0
# 测试代码
a, b, c = map(float, input().split())
qe = QE(a, b, c)
print("a = {:.2f}".format(qe.get_a()))
print("b = {:.2f}".format(qe.get_b()))
print("c = {:.2f}".format(qe.get_c()))
d = qe.get_d()
if d > 0:
root_1 = qe.get_root_1()
root_2 = qe.get_root_2()
print("x1 = {:.2f}".format(root_1))
print("x2 = {:.2f}".format(root_2))
elif d == 0:
root = qe.get_root_1()
print("x = {:.2f}".format(root))
else:
print("该方程式无根")
```
以上就是一个简单的 QE 类的实现,通过私有变量和方法的形式实现了一元二次方程的求解。在测试代码中,通过输入的系数构造了 QE 类的对象,然后调用对应的方法计算方程的根并输出结果,根据判别式的值进行分类讨论。
希望这个代码示例能够帮助到您。
阅读全文