设计一个整系数的一元二次多项式类(将未定元固定为字符串X),将三个整系数作为它的三个实例属性,重载加法与减法运算,实现特殊方法 __str_。最后,生成两个实例做简单测试!
时间: 2024-02-18 12:06:08 浏览: 42
实现一个complex class.(数学里的复数)练习运算符的重载。
5星 · 资源好评率100%
好的,我来设计一个整系数的一元二次多项式类。请看下面的代码:
```python
class QuadraticPolynomial:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def __str__(self):
return f"{self.a}X^2 + {self.b}X + {self.c}"
def __add__(self, other):
a = self.a + other.a
b = self.b + other.b
c = self.c + other.c
return QuadraticPolynomial(a, b, c)
def __sub__(self, other):
a = self.a - other.a
b = self.b - other.b
c = self.c - other.c
return QuadraticPolynomial(a, b, c)
```
在这个类中,我们定义了三个实例属性 a、b、c,表示一元二次多项式的系数。我们重载了特殊方法 __str__,返回一个字符串,表示一元二次多项式的形式。
我们还重载了加法运算符和减法运算符,分别实现了两个一元二次多项式的加法和减法。这两个方法的实现方式都类似,只是将对应的系数分别相加或相减即可。
最后,我们可以生成两个实例,做简单测试:
```python
p1 = QuadraticPolynomial(1, 2, 3)
p2 = QuadraticPolynomial(4, 5, 6)
print(p1) # 输出 1X^2 + 2X + 3
print(p2) # 输出 4X^2 + 5X + 6
p3 = p1 + p2
print(p3) # 输出 5X^2 + 7X + 9
p4 = p1 - p2
print(p4) # 输出 -3X^2 -3X -3
```
在这个测试中,我们生成了两个一元二次多项式 p1 和 p2,分别为 1X^2 + 2X + 3 和 4X^2 + 5X + 6。然后,我们使用加法运算符和减法运算符,分别计算了它们的和与差。最后,我们打印了 p3 和 p4,分别为它们的和与差的结果。
阅读全文