3.13 Comando While
Queremos dar mais de uma oportunidade para o usuário tentar acertar o número secreto, já que é um jogo de adivinhação. A primeira ideia é repetir o código, desde a função input() até o bloco do elif . Ou seja, para cada nova tentativa que quisermos dar ao usuário, copiaríamos esse código novamente.
Só que copiar código sempre é uma má prática, queremos escrever o código apenas uma vez. Se queremos repetir o código, fazemos um laço, ou um loop, que deve repetir a instrução dentro de bloco enquanto ela for verdadeira. O laço que devemos fazer é:
Enquanto ainda há tentativas, faça:
chute_str = input(‘Digite o seu número: ’) print(‘Você digitou: ’, chute_str)
chute = int(chute_str)
acertou = numero_secreto == chute maior = chute > numero_secreto menor = chute < numero_secreto
if (acertou):print('Você acertou!') elif (maior):print('Você errou! O seu chute foi maior que o número secreto') elif (menor):print('Você errou! O seu chute foi menor que o número secreto') print('Fim do Jogo!')Como dito anteriormente, o Python não entende português e assim como o if ele tem um comando que substituirá a palavra enquanto do nosso exemplo. O while é esse comando que, assim como o if , recebe uma condição. A diferença é que o if , caso a condição seja verdadeira, executa apenas uma vez o código de seu bloco, já o while executa enquanto a condição for verdadeira, por exemplo:
x = 5
enquanto x for maior do que 1, faça: imprime(x)
x = x -
Que em Python, é equivalente a:
x =
while(x > 1):
… print(x)
… x = x - 1
Mas tome cuidado, o que acontece se esquecermos essa linha do código x = x - 1 ?
x =
while(x > 1):
… print(x)
…
O programa vai imprimir o número 5 infinitamente, já que a condição passada é sempre verdadeira e não muda dentro do bloco.