有人知道为什么我的程序没有结果吗?

2024-10-03 11:24:02 发布

您现在位置:Python中文网/ 问答频道 /正文

import copy
class Polynomial(dict):
    def __init__(self, coefficients):
        self.coeff = coefficients

    def dictionary(self,x):
        sum=0.0
        d=self.coeff
        for k in d:
            sum +=d[k]*x**k
        return sum
    def __add__(self, other):
        new=copy.deepcopy(self)
        for k,d in other.coeff:
            if k in new:
               new[k] +=value
            else:
                  new[k]=value
        return Polynomial(new)

p = Polynomial({20:1,1:-1,100:4})
q = Polynomial({1:1,100:-3})

print q+q

Tags: inimportselfnewforreturnvaluedef
2条回答
    for k in d:
        sum +=d[k]*x**k
    return sum

更改为

    for k, v in d.iteritems():
        sum +=v*x**k
    return sum

编辑:我看到问题了。。。你知道吗

__add__()中,没有定义值,因此将其设置为None,并且不会产生任何结果

dict上迭代产生键,而不是项。你知道吗

for k, value in other.coeff.iteritems():

相关问题 更多 >