0

Loop em python

S
Selton Silva

Olá! Eu gostaria de saber como eu posso fazer um "loop" ou retornar pra variável, pra forçar quem estar digitando a fazer uma escolha no esperado, no:


if a > 10:

a = Int(input("Digite novamente:"))


Por print ou input, como devem saber, digitar erroneamente logo pula pra próxima variável, então, como eu atualmente prendo nessa escolha caso continuem a ser digitados valores incorretos?


Obrigado!

0
0

Comentários (2)

0
Itallo David

Itallo David

21/09/2021 21:01

Você pode utilizar um loop para isso.

exemplo:

# dicionario para armazenar as notas
notas = {
    "a": None,
    "b": None
}


# mensagem dinamica, o {} será substituido por um texto
# usando o metodo "format" presente em strings
mensagem = 'Digite o {} número entre 1 e 10: ';


# esse loop itera sobre o dicionario, pegando o valor do index e a chave
for index, nota in enumerate(notas):
    
    # aqui eu  defino um texto para substituir o {} na variavel "mensagem"
    # se o index é 0 então é o primeiro valor, se não, é o segundo
    ordem = 'primeiro' if index == 0 else 'segundo'
    
    # loop apenas irá parar caso o numero digitado for 
    # maior igual a 0, ou, menor igual a 10.
    while(notas[nota] == None or (notas[nota] < 0 or notas[nota] > 10)):
        
        # try para evitar que o programa pare de ser executado
        # caso o usuario digite um texto ao inves de numeros
        try:
            notas[nota] = int(input(mensagem.format(ordem)))
        finally:
            continue
        
# calculo da media, utilizando len para definir a quantidade de notas
media = (notas['a'] + notas['b']) / len(notas)
print('A média entre os dois valores é: {}'.format(media))

0
J

João Dias

21/09/2021 19:32

você poderia fazer um loop while,pegando o seu exemplo

a = 0
while True:
  if a == 0:
    a = int(input("Digite um número entre 1 e 10 : "))
  if a>= 0 and a < 11:
    print('obrigado')
    break
  else:
    print("opção invalida digite novamente")
    a = int(input("Digite um número entre 1 e 10 : "))

Note que o comando só vai ser finalizado caso o usuário admita um numero entre 0 e 10

None

Brasil