1
resposta

Validação de entrada para login - RESOLUÇÃO MAIS CONFIGURADA

def validar_nome():
    while True:
        nome = input('Para iniciarmos o processo digite seu nome completo: ')
        if len(nome):
            return nome    

def validar_usuario():
    while True:    
        usuario = input('Por favor crie o seu usuário/login: ')
        if len(usuario) >= 5:
            return usuario        
        print('O nome de usuário/login deve ter pelo menos 5 caracteres.')

def validar_senha():
    while True:
        senha = input('Digite sua senha - LEMBRANDO QUE A SUA SENHA DEVE TER PELO MENOS 8 CARACTERES - : ')
        if len(senha) >= 8:
            return senha

def exibir_mensagem_nome(nome):
    print(f'Por favor Sr. / Sra. {nome}, preencha os demais campos para o seu registro/cadastro: ')        

def exibir_mensagem_sucesso(usuario):
    print('Cadastro realizado com sucesso!')
    print(f'Usuário: {usuario}')

def realizar_cadastro():
    nome = validar_nome()
    exibir_mensagem_nome(nome)
    usuario = validar_usuario()
    senha = validar_senha()
    exibir_mensagem_sucesso(usuario)
    return nome, usuario, senha

if __name__ == '__main__':
    realizar_cadastro()
1 resposta

Olá, Luciano! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso de funções para validação contínua, utilizou muito bem o laço while para garantir a entrada correta do usuário e ainda compreendeu a importância do retorno dos valores validados para uso posterior no fluxo do programa.

Uma dica interessante para o futuro é usar expressões regulares (regex) para validar formatos específicos, como o nome ou a senha. Dessa forma:

import re

def validar_senha():
    padrao = r'^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$'  # Pelo menos 8 caracteres contendo letras e números
    while True:
        senha = input('Digite sua senha - deve conter letras e números, no mínimo 8 caracteres: ')
        if re.match(padrao, senha):
            return senha
        print('Senha inválida! Tente novamente.')

Resultado:

Digite sua senha - deve conter letras e números, no mínimo 8 caracteres: 12345678
Senha inválida! Tente novamente.
Digite sua senha - deve conter letras e números, no mínimo 8 caracteres: 123456
Senha inválida! Tente novamente.
Digite sua senha - deve conter letras e números, no mínimo 8 caracteres: qawsed1
Senha inválida! Tente novamente.
Digite sua senha - deve conter letras e números, no mínimo 8 caracteres: 1q2w3e4r
1q2w3e4r

Isso faz a validação ficar mais robusta, garantindo maior segurança e qualidade nas entradas do usuário.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!