python面向对象作业_python面向对象编程作业
展開全部
import?re
class?derivative:
def?__init__(self,s):
self.s='+'+s?if?s[0]?not?in?['+','-']?else?s
def?__analysis__(self):
self.ite=list(re.finditer('[+-]',self.s))
self.items=[x?for?x?in?re.split(r'[+-]',self.s)?if?x!='']
self.pm=[self.s[i.span()[0]]?for?i?in?self.ite]
self.var=[k[k.find('^')-1]?for?k?in?self.items?if?k.find('^')>-1][0]
self.ratio=[]
self.power=[]
for?item?in?self.items:
j=item.find('^')
k=item.find(self.var)
if?j>-1:
self.power.append(int(item[j+1]))
elif?k>-1:
self.power.append(1)
else:
self.power.append(0)
for?item?in?self.items:
k=item.find('*')
if?k>-1:
self.ratio.append(int(item[k-1]))
elif?item.find(self.var)>-1:
self.ratio.append(1)
else:
self.ratio.append(int(item))
self.items=[t[1]?for?t?in?sorted(list(zip(self.power,self.items)),reverse=True)]
self.ratio=[t[1]?for?t?in?sorted(list(zip(self.power,self.ratio)),reverse=True)]
self.pm=[t[1]?for?t?in?sorted(list(zip(self.power,self.pm)),reverse=True)]
self.power.sort(reverse=True)
def?__derivative__(self):
power=[x-1?if?x>1?else?0?for?x?in?self.power]
ratio=[]
for?i?in?range(len(self.power)):
if?self.power[i]>1:
ratio.append(self.power[i]*self.ratio[i])
elif?self.power[i]==1:
ratio.append(self.ratio[i])
else:
ratio.append(0)
items=[]
for?i?in?range(len(self.power)):
if?ratio[i]==0:
continue
item=self.pm[i]
if?ratio[i]>0:
item+=str(ratio[i])
if?power[i]>0:
item+='*'+self.var
if?power[i]>1:
item+='^'+str(power[i])
items.append(item)
self.out_s=''.join(items)
if?self.out_s[0]?==?'+':
self.out_s=self.out_s[1:]
def?der(self):
self.__analysis__()
self.__derivative__()
return?self.out_s
s='2*x^3+3*x^2+5*x+1'
d=derivative(s)
print(d.der())
s='-5*x^6-3*x^3+12-4*x^4'
d=derivative(s)
print(d.der())
“不恰當的輸入”不知道要處理什么級別的錯誤32313133353236313431303231363533e4b893e5b19e31333365646237,所以沒搞。自己根據需求去搞吧。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的python面向对象作业_python面向对象编程作业的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3android版_Andr
- 下一篇: python cpython关系_第3篇