Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #EXERCICIO 1
- #ITEM A)
- def ScanStringPart(String, Segmento):
- # Primeiro vamos checar se o que estamos a procurar sequer existe na string.
- if Segmento in String:
- for i in range(0,len(String),len(Segmento)):
- # Temos que testar se o tamanho do segmento é igual ou maior do que 1.
- # Se for igual, não podemos usar o caso do "elif String[i + 1 : i + 1 + len(Segmento)] == Segmento:"
- # porque isto produziria redundâncias.
- if len(Segmento) == 1:
- if String[i : i + len(Segmento)] == Segmento:
- yield(i)
- elif len(Segmento) > 1:
- if String[i : i + len(Segmento)] == Segmento:
- yield(i)
- # Este elif serve para os casos onde aparece um número ímpar de caracteres antes do caractere pesquisado.
- elif String[i + 1 : i + 1 + len(Segmento)] == Segmento:
- yield(i + 1)
- """
- Dá pra resolver o Item A) com o método str.find() ou str.index()
- """
- #ITEM B)
- """Crie uma classe que define um objeto iterável. -> OK.
- Essa classe deve possuir o método construtor e os dois métodos necessários para tornar o objeto iterável (__iter__ e __next__ ). -> OK.
- O método construtor deve possuir como argumentos a string e o segmento e devem ser criados atributos para ambos argumentos recebidos. -> OK.
- Os métodos necessários para a iteração devem respeitar o protocolo de iteração e retornar a posição correta a cada iteração.
- (Não se preocupe se aparecer a palavra None em algumas das iterações – é possível resolver sem None, mas não é necessário no exercício.)"""
- class IterStrObject(object):
- def __init__(self, String, Segmento):
- self.ObjString = String
- self.ObjSegmento = Segmento
- def __iter__(self):
- self.i = 0
- return self
- def __next__(self):
- if self.i > len(self.ObjString):
- raise StopIteration
- self.i += 1
- return self.i
- # TESTES
- StrObj = IterStrObject('bbbbbb', 'bbb')
- for k in ScanStringPart(StrObj.ObjString, StrObj.ObjSegmento):
- print(k)
- # String1 = 'engenharia'
- # String2 = 'bbbbbb'
- # Segmento1 = 'n'
- # Segmento2 = 'en'
- # Segmento3 = 'bb'
- # ScanStringPart(String1, Segmento1)
- # ScanStringPart(String1, Segmento2)
- # ScanStringPart(String2, Segmento3)
Advertisement
Add Comment
Please, Sign In to add comment