• 大小: 5KB
    文件类型: .py
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: Python
  • 标签: python  

资源简介

python中通过对加减乘除和输出函数的重载,用类实现多项式的加减乘除运算。

资源截图

代码片段和文件信息

#coding=utf-8
class poly:
    def __init__(selfdata=[]):
        self.data=data[:]
    def __del__(self):
        del self.data

        
    def __add__(selfobj):
        x=len(self.data)
        y=len(obj.data)
        max=x if x>y else y
        n1=[]
        for n in range(max):
            n1.append(self.data[n]+obj.data[n])
        return poly(n1[:])


    
    def __sub__(selfobj):
        x=len(self.data)
        y=len(obj.data)
        max=x if x>y else y
        n1=[]
        for n in range(max):
            n1.append(self.data[n]-obj.data[n])
        return poly(n1[:])


    
    def __mul__(selfobj):
        x=len(self.data)
        y=len(obj.data)
        max=x if x>y else y
        n1=[0]*(max*2-1)
        for i in range(x):  
            for j in range(y): 
                n1[i+j] = int(n1[i+j]) + int(self.data[i]*obj.data[j])    
        return poly(n1[:])



    
    def __truediv__(selfobj):
        x=len(self.data)
        y=len(obj.data)
        if x            return poly(self.data)
        else:
            k=x-y
            n1=[]
            for i in range(x-1y-2-1):
                count=self.data[i]/obj.data[y-1]
                n1.append(count)
                t=y-1
                for j in range(ii-y-1):
                    self.data[j]=self.data[j]-count*obj.data[t]
                    t=t-1
            n1.reverse()
            n1.append(‘00‘)
            n1=n1+self.data
            return poly(n1[:])



        
    def __repr__(self):
        max=len(self.data)
        family=0
        for t in range(max):
            if self.data[t]==‘00‘:
                family=1
                break
        if family==1:
            n2=[]
            flag=0
            for i in range(t):
                if self.data[i]:
                    if i==0:
                        n2.append(str(self.data[i]))
                        flag=1
                    else:
                        if flag==0:
                            if self.data[i]>0 and self.data[i]!=1:n2.append(str(self.data[i])+‘X‘+str(i))
                            if self.data[i]<0 and self.data[i]!=-1:n2.append(str(self.data[i])+‘X‘+str(i))
                            if self.data[i]==1:n2.append(‘X‘+str(i))
                            if self.data[i]==-1:n2.append(‘-‘+‘X‘+str(i))
                            flag=1
                        else:
                            if self.data[i]>0 and self.data[i]!=1:n2.append(‘+‘+str(self.data[i])+‘X‘+str(i))
                            if self.data[i]<0 and self.data[i]!=-1:n2.append(str(self.data[i])+‘X‘+str(i))
                            if self.d

评论

共有 条评论