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.
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!