Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class rangi():
- def __init__(self, inicio = False, fim = False, sequencia = False):
- if str(sequencia) == str(0):
- raise TypeError('Digite algo maior que 0 no 3 item')
- else:
- try:
- if inicio == str(inicio) or fim == str(inicio) or sequencia == str(inicio):
- raise TypeError('Digite somente números e no mínimo um número')
- assert str(sequencia).isnumeric() == True and sequencia != 0 or sequencia == False or sequencia <0
- assert str(inicio).isnumeric() == True or inicio != False
- assert str(fim).isnumeric() == True or fim != True
- except:
- raise TypeError('Digite somente números e no mínimo um número')
- if fim != False:
- self.inicio = inicio
- self.fim = fim
- self.sequencia = sequencia
- else:
- self.inicio = 0
- self.fim = inicio
- self.sequencia = sequencia
- def __iter__(self):
- sequencia = self.sequencia
- inicio = self.inicio
- fim = self.fim
- return nexte(sequencia,inicio,fim)
- class nexte():
- def __init__(self,sequencia,inicio,fim):
- self.count = 0
- self.sequencia = sequencia
- self.fim = fim
- self.inicio = inicio
- def __next__(self):
- if self.sequencia == False:
- if self.inicio < self.fim:
- self.inicio += 1
- return self.inicio -1
- else:
- raise StopIteration
- else:
- if self.sequencia > 0:
- if self.inicio < self.fim:
- self.inicio += self.sequencia
- return self.inicio -self.sequencia
- else:
- raise StopIteration
- else:
- if self.count == 0:
- self.count += 1
- return self.inicio
- self.inicio += self.sequencia
- if self.inicio > self.fim:
- return self.inicio
- else:
- raise StopIteration
- testes = [(5,), (1.7,), ("opa",), (), (1,5,0), (1,5), (5,2), (5,2,-1)]
- for c in rangi(5,2,-1):
- print(c)
- for c in range(5,2,-1):
- print(c)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement