Fiz esse loop que verifica a escolha do usuário (menos linhas possíveis e fácil de entender)
A minha dúvida é: esse código infringe alguma boa prática?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Fiz esse loop que verifica a escolha do usuário (menos linhas possíveis e fácil de entender)
A minha dúvida é: esse código infringe alguma boa prática?
Seu código parece estar correto em termos de lógica e eficácia. Ele usa um loop para garantir que o usuário forneça um valor válido para o nível de dificuldade, e isso é uma abordagem comum em situações em que você precisa validar a entrada do usuário.
No entanto, aqui estão algumas sugestões para melhorar ainda mais:
Indentação: Certifique-se de que a indentação do seu código esteja correta. A palavra-chave While deve começar com "W" maiúsculo, e a indentação deve estar correta para que o Python possa entender corretamente a estrutura do loop.
Mensagem de entrada clara: A mensagem de entrada no segundo input pode ser mais clara. Em vez de "escolha apenas 1, 2 ou 3", você pode fornecer uma mensagem mais específica, como "Por favor, escolha um nível de dificuldade válido: 1, 2 ou 3."
Validação adicional: Se desejar, você pode adicionar uma validação adicional para garantir que o usuário insira um valor numérico na primeira entrada. Isso pode evitar erros caso o usuário insira algo que não seja um número.
Aqui está uma versão modificada do seu código com essas sugestões:
nivel_de_dificuldade = input("Escolha o nível: ")
# Validar se a entrada é um número
while not nivel_de_dificuldade.isdigit():
nivel_de_dificuldade = input("Por favor, insira um número para o nível de dificuldade: ")
nivel_de_dificuldade = int(nivel_de_dificuldade)
# Validar se o número está dentro do intervalo desejado
while nivel_de_dificuldade not in [1, 2, 3]:
nivel_de_dificuldade = int(input("Por favor, escolha apenas 1, 2 ou 3: "))
Essas sugestões são principalmente para melhorar a experiência do usuário e tornar o código mais robusto, mas o seu código original também atende ao propósito básico de garantir uma entrada válida.