我的问题是关于 Python 3 中的列表。在下面的代码中,我给出了一个类的方法,其目的是模仿多项式的数学行为。该类将包含多项式算术的方法以及一个属性。该属性是多项式中系数的列表,其中元素以多项式的正常顺序列出。例如,7x^3+3x+4 变为 [7,0,3,4]
下面的 add() 方法试图模仿视觉上的右对齐加法,就像在正常算术中一样。它首先找到哪个列表较短,然后将其元素添加到较长列表中的相应元素,然后返回带有此更改的较长列表。但是,我不希望实际更改任何一个原始列表的副作用,因此我将原始列表分配给方法内部列表的大小越来越小。当我创建两个多项式 p = P([1,2,3]) 和 q = P([1,2,3]),然后调用 p.add(q) 时,会发生加法,但没有打印到屏幕,当我检查 p.coeffs 时,它显示为 [2,4,6]。
class P:
coeffs = []
def __init__(self,coeffs):
self.coeffs = coeffs
def add(self,q):
if len(self.coeffs) >= len(q.coeffs):
greater = self.coeffs
lesser = q.coeffs
else:
greater = q.coeffs
lesser = self.coeffs
i = -1
while i >= -len(lesser):
greater[i] = greater[i]+lesser[i]
i=i-1
return greater
谢谢你提供的所有帮助。