Sobre loops 'while'

Concluído

Quando você escreve código, um desafio comum é fazer com que ele execute uma tarefa um número desconhecido de vezes. Nesta unidade, você deseja permitir que um usuário insira uma lista de nomes de planetas. Infelizmente, você não sabe quantos nomes o usuário digita. Para suportar looping um número desconhecido de vezes, você pode usar um while loop.

Um while loop executa uma operação enquanto uma determinada condição é verdadeira. Você pode usar um while loop para:

  • Verifique se há outra linha em um arquivo.
  • Verifique se um sinalizador foi definido.
  • Verifique se um usuário terminou de inserir valores.
  • Verifique se algo mais foi alterado para indicar que o código pode parar de executar a operação.

Importante

A coisa mais importante a lembrar quando você cria while loops é garantir que a condição mude. Se a condição for sempre verdadeira, o Python continuará a executar seu código até que o programa falhe.

A sintaxe de um while loop é semelhante à de uma if instrução. Você fornece uma condição e o código que deseja executar enquanto a condição for verdadeira.

Um while loop tem três partes importantes:

  • A palavra-chave while, seguida de um espaço.

  • A condição que você testa. Se a condição for verdadeira, o código dentro do while loop será executado.

  • O código que você deseja executar para cada iteração, recuado com espaço em branco aninhado. Por exemplo:

    while <condition>:
        # code here
    

Vamos ver como você pode criar código para solicitar que os usuários insiram valores e, em seguida, permitir que eles insiram concluído quando terminarem de inserir os valores. Em nosso exemplo, a entrada do usuário é a condição que é testada na parte superior do while loop.

user_input = ''

while user_input.lower() != 'done':
    user_input = input('Enter a new value, or done when done')

Observe que você está usando input para avisar os usuários. Cada vez que os usuários inserem um novo valor, eles estão alterando a condição, o que significa que o while loop será encerrado depois que eles entrarem concluídos.

Nota

Em nosso exemplo, usamos lower para converter a entrada em minúsculas, o que permite uma comparação sem diferenciação de maiúsculas e minúsculas.

Você pode usar a cadeia de caracteres recém-inserida como faria com qualquer outra cadeia de caracteres capturada com inputo . Se quiser adicioná-lo a uma lista, você pode usar um código semelhante ao exemplo a seguir:

# Create the variable for user input
user_input = ''
# Create the list to store the values
inputs = []

# The while loop
while user_input.lower() != 'done':
    # Check if there's a value in user_input
    if user_input:
        # Store the value in the list
        inputs.append(user_input)
    # Prompt for a new value
    user_input = input('Enter a new value, or done when done')

Observe a if instrução dentro do while loop. Esta instrução testa um valor de cadeia de caracteres dentro do user_input. Se o while loop estiver sendo executado pela primeira vez, não há valor, então não há nada para armazenar no inputs. Depois de executado pela primeira vez, user_input sempre mantém o valor que o usuário inseriu. Como while está testando para garantir que o valor não seja igual done (a palavra que o usuário insere para sair do aplicativo), você sabe que o valor atual é aquele que você pode adicionar à lista.

Nota

Você pode estar familiarizado com outras linguagens de programação que suportam um loop, o que permite executar um do teste na parte inferior do loop. Python não fornece um do loop.