Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Repetição da seleção de nível

Olá!

Como é possível fazer que a seleção de nível seja repetida caso o usuário digite um número inválido?

O código

import random

numero_secreto = random.randrange(1,101)
total_de_tentativas = 0
pontos = 1000

print("Bem-vindo ao jogo de adivinhação")
print("Para começar, selecione seu nível")
nivel = int(input("Digite (1) fácil, (2) médio, (3) difícil: "))


if (nivel == 1):
    total_de_tentativas = 20

elif (nivel == 2):
    total_de_tentativas = 10

elif (nivel == 3):
    total_de_tentativas = 5

else:
    print("{} não é um nível válido!".format(nivel))

Por exemplo, digamos que o usuário digite "4", isso encerraria o programa com o print de não ser válido, mas como é possível fazer para retomar a seleção até que seja inserido um dos valores válidos? (No caso, 1, 2 ou 3)

2 respostas
solução!

você pode criar um while da seguinte forma :

nivel = 666
while (nivel > 3 or nivel < 1)
    nivel = int(input("Digite (1) fácil, (2) médio, (3) difícil: "))
    if (nivel > 3 or nivel < 1)
        print("{} não é um nível válido!".format(nivel))

if (nivel == 1):
    total_de_tentativas = 20

elif (nivel == 2):
    total_de_tentativas = 10

elif (nivel == 3):
    total_de_tentativas = 5

Dessa forma você fica num loop eterno até colocar 1, 2 ou 3.

Nossa, que interessante a forma de criar o while. Muito obrigado.

Eu estava tentando criar uma função

def selecao_nivel()

Para que, de alguma forma, fazer retornar para o inicio até a condição se tornar verdadeira.