1
resposta

[Projeto] Validação de entrada para login

def validar_usuario(usuario: str) -> bool:
    """
    Valida o nome do usuário.
    Deve possuir pelo menos 5 caracteres.
    """
    if len(usuario) < 5:
        print("Nome inválido para usuário. Insira um nome com pelo menos 5 caracteres.")
        return False
    return True


def validar_senha(senha: str) -> bool:
    """
    Valida a senha.
    Deve possuir pelo menos 8 caracteres.
    """
    if len(senha) < 8:
        print("Senha inválida para usuário. Insira uma senha com pelo menos 8 caracteres.")
        return False
    return True


def criar_usuario(nome: str, senha: str) -> list:
    """
    Cria usuário se ambos os parâmetros forem válidos.
    """
    if validar_usuario(nome) and validar_senha(senha):
        print("Cadastro realizado com sucesso!")
        return [nome, senha]

    return None


usuarios = []

while True:
    nome = input("Digite seu nome de usuário: ")
    senha = input("Digite sua senha: ")

    usuario = criar_usuario(nome, senha)

    if usuario:
        usuarios.append(usuario)
        break

print(usuario)
1 resposta

Oi, Paulo! Como vai?

Gostei da forma como você separou as validações em funções diferentes, deixando o código mais organizado e fácil de reutilizar. O uso do while True junto com as validações também ficou muito bom para garantir que apenas usuários válidos sejam cadastrados.

Uma dica interessante para o futuro é usar o método strip() para remover espaços antes e depois do texto digitado. Isso ajuda a evitar entradas com espaços vazios sem perceber. Veja este exemplo:


nome = input("Digite seu nome: ").strip()

if len(nome) >= 5:
    print("Nome valido")

Neste código, o strip() remove espaços extras antes da validação do tamanho do nome.

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