展开全部
^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|e68a84e8a2ad62616964757a686964616f31333363356536 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()