Na validação do CEP, não seria interessante utilizar regex? Neste caso compilaríamos usando re.compile(r'(\d){5}-(\d){3}')e depois usaríamos lógica booleana para validar? dá para fazer assim?
Obrigado desde já pela ajuda.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Na validação do CEP, não seria interessante utilizar regex? Neste caso compilaríamos usando re.compile(r'(\d){5}-(\d){3}')e depois usaríamos lógica booleana para validar? dá para fazer assim?
Obrigado desde já pela ajuda.
Oii Pietro, como você está?
É possível utilizar regex para validar o formato dos números do CEP. Vale ressaltar que é possível aliar a validação do tamanho com o uso de expressões regulares, dessa forma, garantimos que sempre será passado para a classe 8 números. Podemos fazer isso da seguinte forma:
import re
class BuscaEndereco:
def __init__(self, cep):
cep = str(cep)
if self.cep_eh_Valido(cep):
self.cep = cep
else:
raise ValueError("CEP inválido!")
def cep_eh_Valido(self, cep):
if len(cep) == 8:
padrao_cep = re.compile(r'(\d){5}(\d){3}')
match = padrao_cep.match(cep)
return True
else:
return False
cep = 25870145
objeto_cep = BuscaEndereco(cep)O instrutor optou por validar pelo tamanho utilizando a função len por ser algo simples e direto, mas podemos fazer a validação do formato do CEP através de expressões regulares (regex) em conjunto com a função len, sendo este um modo de se obter o mesmo resultado.
Espero ter ajudado.
Qualquer dúvida fico à disposição.
Abraços e bons estudos!