Advertisement
Guest User

Meu range de bosta

a guest
Nov 21st, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.31 KB | None | 0 0
  1. class rangi():
  2.     def __init__(self, inicio = False, fim = False, sequencia = False):
  3.         if str(sequencia) == str(0):
  4.             raise TypeError('Digite algo maior que 0 no 3 item')
  5.         else:
  6.             try:
  7.                 if inicio == str(inicio) or fim == str(inicio) or sequencia == str(inicio):
  8.                     raise TypeError('Digite somente números e no mínimo um número')
  9.                 assert str(sequencia).isnumeric() == True and sequencia != 0  or sequencia == False or sequencia <0
  10.                 assert str(inicio).isnumeric() == True or inicio != False
  11.                 assert str(fim).isnumeric() == True or fim != True
  12.             except:
  13.                 raise TypeError('Digite somente números e no mínimo um número')
  14.             if fim != False:
  15.                 self.inicio = inicio
  16.                 self.fim = fim
  17.                 self.sequencia = sequencia
  18.             else:
  19.                 self.inicio = 0
  20.                 self.fim = inicio
  21.                 self.sequencia = sequencia
  22.     def __iter__(self):
  23.         sequencia = self.sequencia
  24.         inicio = self.inicio
  25.         fim = self.fim
  26.         return nexte(sequencia,inicio,fim)
  27. class nexte():
  28.     def __init__(self,sequencia,inicio,fim):
  29.         self.count = 0
  30.         self.sequencia = sequencia
  31.         self.fim = fim
  32.         self.inicio = inicio
  33.     def __next__(self):
  34.         if self.sequencia == False:
  35.             if self.inicio < self.fim:
  36.                 self.inicio += 1
  37.                 return self.inicio -1
  38.             else:
  39.                 raise StopIteration
  40.         else:
  41.             if self.sequencia > 0:
  42.                 if self.inicio < self.fim:
  43.                     self.inicio += self.sequencia
  44.                     return self.inicio -self.sequencia
  45.                 else:
  46.                     raise StopIteration
  47.             else:
  48.                 if self.count == 0:
  49.                     self.count += 1
  50.                     return self.inicio
  51.                 self.inicio += self.sequencia
  52.                 if self.inicio > self.fim:
  53.                         return self.inicio
  54.                 else:
  55.                     raise StopIteration
  56.  
  57. testes = [(5,), (1.7,), ("opa",), (), (1,5,0), (1,5), (5,2), (5,2,-1)]
  58.  
  59. for c in rangi(5,2,-1):
  60.     print(c)
  61. for c in range(5,2,-1):
  62.     print(c)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement