Sobre loops 'while'
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 input
o . 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.