用python3设计一个整系数的一元二次多项式类(将未定元固定为字符串 x ),将三个整系数作为它的三个实例属性,重载加法与减法运算,实现特殊方法_ str _。最后,生成两个实例做简单测试!
时间: 2024-02-22 12:58:58 浏览: 68
python3代码中实现加法重载的实例
好的,以下是实现要求的一元二次多项式类的代码:
```python
class QuadraticPolynomial:
def __init__(self, a, b, c):
self.a = a # 实例属性:二次项系数
self.b = b # 实例属性:一次项系数
self.c = c # 实例属性:常数项系数
def __add__(self, other):
return QuadraticPolynomial(self.a + other.a, self.b + other.b, self.c + other.c)
def __sub__(self, other):
return QuadraticPolynomial(self.a - other.a, self.b - other.b, self.c - other.c)
def __str__(self):
if self.a == 0:
return f"{self.b}x + {self.c}"
elif self.b == 0:
return f"{self.a}x^2 + {self.c}"
elif self.c == 0:
return f"{self.a}x^2 + {self.b}x"
else:
return f"{self.a}x^2 + {self.b}x + {self.c}"
# 测试代码
p1 = QuadraticPolynomial(2, 3, 1)
p2 = QuadraticPolynomial(1, 2, 4)
print(p1 + p2) # 3x^2 + 5x + 5
print(p1 - p2) # x^2 + x - 3
p3 = QuadraticPolynomial(0, 5, 7)
print(p3) # 5x + 7
```
以上代码中,我们定义了一个 `QuadraticPolynomial` 类,包含了要求中的所有属性和方法。
在初始化方法 `__init__` 中,我们传入三个参数:二次项系数、一次项系数和常数项系数,用它们来初始化实例属性 `a`、`b` 和 `c`。
在重载的加法和减法运算中,我们分别实现了多项式加法和减法的操作。
在特殊方法 `__str__` 中,我们根据系数的不同情况,返回不同的多项式字符串表示。
在测试代码中,我们生成了两个实例 `p1` 和 `p2`,并对它们进行了加法和减法运算,最后输出了结果。另外,我们还生成了一个只包含一次项和常数项的实例 `p3`,并输出了它的字符串表示。
阅读全文