2
respostas

Praticando Python | 020 | Código | Validação de entrada para login

Boa tarde, apenas para compartilhar conforme comentário na pagina do curso.

# Praticando Python | 020 | Código | Validação de entrada para login

# João está desenvolvendo um sistema de cadastro para um site de leitura. Ele precisa garantir que os usuários insiram um nome de usuário e uma senha válidos. As regras são as seguintes:
# O nome de usuário deve ter pelo menos 5 caracteres.
# A senha deve ter pelo menos 8 caracteres.
# João quer que o sistema continue solicitando as informações até que ambas as condições sejam atendidas. Quando o usuário insere dados válidos, o programa deve exibir a mensagem: "Cadastro realizado com sucesso!".
# Crie um programa que implemente essa lógica usando um laço while.

'''Criar função para valirdar o nome de usuário'''
def validar_nome_usuario(nome: str) -> bool:
    # Retorna True se o nome tiver pelo menos 5 caracteres.
    return len(nome) >= 5

'''Criar função para valirdar a senha do usuário'''
def validar_senha(senha: str) -> bool:
    # Retorna True se a senha tiver pelo menos 8 caracteres.
    return len(senha) >= 8

'''Criar função para cadastrar o usuário'''
def cadastrar():
    while True:
        nome = input("Digite seu nome de usuário: ")
        senha = input("Digite sua senha: ")

        if not validar_nome_usuario(nome):
            print("O nome de usuário deve ter pelo menos 5 caracteres.")
            continue

        if not validar_senha(senha):
            print("A senha deve ter pelo menos 8 caracteres.")
            continue

        print("Cadastro realizado com sucesso!")
        break

cadastrar()

# Racional
# O while True: vai manter o programa pedindo nome e senha eternamente.
# Ele só vai sair desse laço quando as condições forem atendidas.
# Por isso uso o break para interromper o laço e seguir para o final do programa.
2 respostas

Olá, estudante, como vai?

Seu código atende corretamente ao enunciado proposto e aplica bem o uso do laço while para garantir que as validações sejam respeitadas antes de finalizar o cadastro. A separação da lógica em funções específicas para validar o nome de usuário e a senha deixa o código mais organizado, legível e fácil de manter.

A abordagem adotada demonstra um bom entendimento do controle de fluxo, especialmente no uso do continue para evitar execuções desnecessárias quando alguma regra não é atendida. O uso do break no momento correto também mostra clareza sobre como encerrar o laço apenas quando as condições exigidas são satisfeitas.

Obrigado por compartilhar sua implementação, continue trazendo suas soluções e dúvidas, o fórum está à disposição para acompanhar sua evolução.

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

Muito obrigado.