Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2019
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.68 KB | None | 0 0
  1. import itertools as it
  2.  
  3. class MyPolynomial(object):
  4.   def __init__(self, *coefficients):
  5.     self.coefficients = list(coefficients)
  6.     self._priv = None
  7.    
  8.   def __eq__(self, y):
  9.     return str(self) == str(y)
  10.    
  11.  
  12.   def __repr__(self):
  13.     if len(self.coefficients) == 0:
  14.       return '{}({})'.format(
  15.         self.__class__.__name__, '0'
  16.         )
  17.     if sum(self.coefficients) == 0:
  18.       return '{}({})'.format(
  19.         self.__class__.__name__, '0'
  20.         )
  21.     return '{}({})'.format(
  22.       self.__class__.__name__, ', '.join((str(x) for x in self.coefficients))
  23.       )
  24.      
  25.   def __str__(self):
  26.     out = ''
  27.     size = len(self.coefficients)    
  28.     for i in range(size):
  29.         if self.coefficients[i] != 0:
  30.             out += ' + %gx^%d' % (self.coefficients[i],i)
  31.    
  32.     out = out.replace('+ -', '- ')
  33.     out = out.replace('x^0', '1')
  34.     out = out.replace(' 11 ', ' 1 ')
  35.     if out[0:3] == ' + ':
  36.         out = out[3:]
  37.     if out[0:3] == ' - ':
  38.         out = '-' + out[3:]
  39.     if len(out) == 0:
  40.       return '0'
  41.     return out
  42.    
  43.   def from_iterable(iterables):
  44.     return MyPolynomial(*iterables)
  45.    
  46.   def degree(self):
  47.     if len(self.coefficients) == 0:
  48.       return 0
  49.     if sum(self.coefficients) == 0:
  50.       return 0
  51.     i = 1
  52.     iterator = len(self.coefficients)-1
  53.     print("iter:"+str(iterator))
  54.     for x in self.coefficients:
  55.       if self.coefficients[iterator] == 0:
  56.         i = i + 1
  57.       else:
  58.         break
  59.       iterator = iterator - 1
  60.     return len(self.coefficients) - i  
  61.    
  62.    
  63. w = MyPolynomial(0, 1, 0)
  64. print(w.degree())
  65.    
  66.  
  67. assert MyPolynomial(5, 4).degree() == 1
  68. assert MyPolynomial().degree() == 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement