Loop While
Parte da seção Fundamentals do Journey de Python da Coddy — lição 36 de 77.
Um loop while é diferente do loop for. Um loop for nos permite iterar sobre um range específico, enquanto um loop while nos permite continuar iterando enquanto uma determinada condição for atendida.
Para usar um loop while, escreva:
while condition:
codeO código será executado apenas se a condição for True.
A condição é tipicamente formada usando operadores de comparação como <= (menor ou igual a), >= (maior ou igual a), < (menor que), > (maior que) ou == (igual a). O loop continua em execução enquanto essa comparação for avaliada como True e para assim que ela se tornar False.
Dentro do corpo do loop, você geralmente precisa atualizar a variável que está sendo verificada. Isso é feito com operadores de atribuição composta como += (adicionar e atribuir), -= (subtrair e atribuir), *= (multiplicar e atribuir) ou /= (dividir e atribuir). Por exemplo, x *= 2 é um atalho para x = x * 2. Sem atualizar a variável, a condição nunca mudaria e o loop rodaria para sempre.
Existem muitos casos de uso onde um while resolveria o problema, mas o loop for não.
Por exemplo, considere este problema:
Encontre a menor potência de 2 que seja maior que um determinado número.
Para resolvê-lo, usaremos um loop while que multiplicará repetidamente a potência atual de 2 por 2 até que ela se torne maior que o número fornecido:
number = 27
power_of_two = 1
while power_of_two <= number:
power_of_two *= 2
print(power_of_two)Aqui, power_of_two <= number é a condição usando um operador de comparação, e power_of_two *= 2 atualiza a variável a cada iteração usando um operador de atribuição aumentada. Assim que power_of_two exceder number, a condição torna-se False e o loop para.
Desafio
InicianteEscreva um programa que receba uma entrada, um número float.
Use um loop while para dividir a entrada por 2 enquanto o número for maior ou igual a 3.5.
Imprima o primeiro número que for menor que 3.5.
Folha de consulta
Um loop while executa enquanto uma condição for True:
while condition:
codeUse operadores de comparação para formar a condição: ==, <, >, <=, >=.
Use operadores de atribuição aumentada para atualizar a variável a cada iteração: +=, -=, *=, /=.
number = 27
power_of_two = 1
while power_of_two <= number:
power_of_two *= 2 # atualiza a variável para evitar um loop infinito
print(power_of_two) # 32Experimente você mesmo
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentals
4Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operadores Lógicos Parte 47Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada10FizzBuzz com um Diferencial
Visão Geral do JogoA Função FizzBuzz2Variáveis
NúmerosStringBooleanoConvenções de NomenclaturaVariáveis VaziasRecapitulação - Inicializar Variáveis8Laços de Repetição
Loop ForLoop WhileBreakContinueRecapitulação - FatorialA Função RangeLoops AninhadosRecapitulação - Entrada Dinâmica11Fundamentos de Listas
Declarando uma ListaAcessando Elementos da ListaModificando ListasMétodos de ListaRecapitulação - Lista de ProdutosRecapitulação - Lista InvertidaTupla14Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa3Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosRecapitulação - Matemática SimplesOperadores de Comparação6Entrada e Saída Básica
SaídaSaída com VariáveisEntradaConversão de TiposRecapitulação - Até 120Recapitulação - Verdadeiro ou Falso9Funções
Declarar uma FunçãoArgumentosRetornoRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores Padrão12Iterando sobre Sequências
Iterando sobre ElementosA Função EnumerateIterando sobre Strings Parte 1Iterando sobre Strings Parte 2