Arquivo de etiquetas: list comprehension

Python: validação de email

Olá,

hoje seguimos para o exercício 2 em Python, desta vez para validação de email.

Exercício 2

#Escreva uma função que retorne True se uma string for um endereço de e-mail e False caso contrário.
Nota: Para efeitos deste exercício, considere que um endereço de e-mail:

  • contém exactamente uma arroba (@);
  • contém apenas letras minúsculas antes da arroba;
  • contém apenas um ponto, e este está a seguir à arroba;
  • não contém caracteres além de letras minúsculas, pontos e arrobas.

Resolução:

P_ex2

No início da função é criada uma lista de letras minúsculas, de “a” a “z”. Esta lista contém todos os elementos permitidos na string do email com excepção do símbolo do arroba (“@”) e do ponto (“.”).

Assim, criando outra lista com os elementos que estejam na string inicial e não estejam na lista de letras minúsculas criada no passo 1, obteremos este valor para um email correcto:

[‘@’,’.’]

Repare-se que no caso de existirem mais que um símbolo arroba, ou mais que um ponto, ou um ponto antes do arroba, ou outros símbolos e números, esta lista resultante será diferente.

Assim, garante-se que para o email seguir as regras implícitas no problema basta que a lista resultante da comparação seja de facto [‘@’,’.’].

O método utilizado em python para a criação da lista com letras minúsculas assim como para a lista resultante da comparação das duas listas é a “list comprehension”.

Na segunda parte da função verifica-se, portanto, que se a lista resultante for a descrita anteriormente a função deverá retornar True (email correcto), caso contrário retornará False.

Repare-se, por exemplo que se se tentar executar a função com o valor da string assim:

"joao.Ratao33 at carochinha.pt"

a função retornará False.

Até ao próximo exercício,

JG