中易网

急求 python 使用class定义多项式P(x)=a0=a1x+a2x^2……anx^n 使用__init__()产生一个列表记录a的值

答案:1  悬赏:50  
解决时间 2021-01-25 03:52
急求 python 使用class定义多项式P(x)=a0=a1x+a2x^2……anx^n 使用__init__()产生一个列表记录a的值
最佳答案
pip install futurefrom __future__ import division, unicode_literals, print_function
from future.utils import python_2_unicode_compatible
import re

@python_2_unicode_compatible
class P(object):
    def __init__(self,a):
        self.a=a

    def __add__(self,p):
        a,b=self.a, p.a
        if len(self.a)            a,b=b,a
        for i in range(len(b)):
            a[i]+=b[i]
        return P(a)
                        
    def der(self):
        a=[]
        for i,j in enumerate(self.a,1):
            a.append(i*j)        
        return self._getStr('dP(x)/dx = ',a)

    def ind(self):
        a=[]
        for i,j in enumerate(self.a,1):
            a.append(i/j)        
        return self._getStr('P(x)dx = ',['c']+a)        
        
    def _getStr(self,prefix='P(x) = ',a=None):
        if not a:
            a=self.a
        s=''        
        for i,j in enumerate(a):
            if j:
                if 0==i:
                    s=j
                else:
                    if not s:
                        s='{}x^{}'.format(j,i)
                    else:
                        s='{} + {}x^{}'.format(s,j,i)
        if not s:
            s='0'        
        s=re.sub(r'x^1 ','x ',s)
        s=re.sub(r'^1x| 1x',' x',s)
        return '{}{}'.format(prefix,s)
                                                
    def __str__(self):
        return self._getStr()

def main():
    p1=P([1,2,3])
    p2=P([0,1,0,1,6,77,8])    
    print('p1:',p1)
    print('p2:',p2)
    print('p1+p2:',p1+p2)
    print('derivative of p1:',p1.der())
    print('indefinite of p2:',p2.ind())

if __name__=='__main__':
    main()
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
卫生间如何选择瓷砖?地砖和墙砖颜色搭配上有
“享受”是什么意思?
化妆品美导需要哪些条件
求一个百度贴吧2字ID
如何把220v交流电变成5v直流电?
华为sc-ul10是什么机型
三度烫伤应该怎样处理好的快
拳皇mugen两局怎么改三局
考研复试的英语自我介绍要包括哪些内容?
鼻子上长了一个大包!!!
李子园哪个口味比较好喝
美菱冰箱怎么换灯泡
好想怀孕,怎么办,就是怀不上
求查这个手机号码的个人身份证信息
204/(2.04*0.4)简便计算
推荐资讯
绝世女赌王中的粤语歌名叫什么
7.8×9点9=多少选择合适的方法计算
驼背,背看起来很厚怎么办还有救吗
宏宏数码冲印(始兴路)怎么去啊,我要去那办事
急需《边城》导读训练答案
NBA2K13里面最好用的中锋和大前锋是谁?
51零用钱是否超过国家规定年利率?
九阴真经 新服开服武当就可以去古墓吗?
我准备2017年去英国度硕士,在外语院校度翻译
黄家驹唱的我俩我俩这段情是什么名字
同一手号怎么注册新的微信号
5/6-1/6等于2/328/27乘3/
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?