Laço(loop) - Python
Os laços permitem a execução de uma determinada ação com base no cumprimento de uma condição específica. Na linguagem Python, existem os seguintes tipos de laços:
while
for
Ciclo while
O laço while
while condição:
instruções
Após a palavra-chave while
True
Todas as instruções que pertencem ao laço while
number = 1
while number < 5:
print(f"number = {number}")
number += 1
print("Execução do programa concluída")
Nesse exemplo, o laço while
number
O bloco do laço é composto por duas instruções:
print(f"number = {number}")
number += 1
Note que ambas possuem tabulação em relação ao início da linha onde o while
number
Repare também que a última instrução, print("Execução do programa concluída")
while
O processo do laço pode ser descrito da seguinte forma:
Primeiro, é verificado se o valor da variável
é menor que 5. Como inicialmentenumber
é igual a 1, a condição retornanumber
, e as instruções do laço são executadas.True
As instruções exibem no console a mensagem
. Em seguida, o valor denumber = 1
é incrementado em 1, passando a ser igual a 2. A execução de um bloco de instruções do laço é chamada de iteração. Assim, a primeira iteração do laço é concluída.number
Novamente, a condição
é verificada. Comonumber < 5
é 2, a condição ainda é verdadeira, então as instruções do laço são executadas mais uma vez.number
O laço exibe
no console e incrementanumber = 2
para 3, concluindo a segunda iteração.number
O processo se repete com number igual a 3, exibindo
e incrementando o valor para 4, finalizando a terceira iteração.number = 3
Na quarta iteração,
é exibido enumber = 4
é incrementado para 5.number
Agora, a condição
retornanumber < 5
, poisFalse
é igual a 5. O laço é finalizado, e as instruções seguintes ao laçonumber
são executadas.while
Ao final da execução, o console exibirá:
number = 1 number = 2 number = 3 number = 4 Execução do programa concluída
Bloco else no laço while
Para o laço while
else
False
number = 1
while number < 5:
print(f"number = {number}")
number += 1
else:
print(f"number = {number}. O laço foi concluído")
print("Execução do programa concluída")
Neste caso, o laço while
False
else
number = 1
while number < 5:
print(f"number = {number}")
number += 1
else:
print(f"number = {number}. O laço foi concluído")
print("Execução do programa concluída")
O bloco else
False
number = 10
while number < 5:
print(f"number = {number}")
number += 1
else:
print(f"number = {number}. O laço foi concluído")
print("Execução do programa concluída")
Neste exemplo, a condição number < 5
False
else
Ciclo for
Outro tipo de laço é a estrutura for
for
for variável in conjunto_de_valores:
instruções
Após a palavra-chave for, é especificada uma variável que receberá os valores. Em seguida, após o operador in
Nas linhas subsequentes, são colocadas as instruções do laço, que também devem ter tabulação em relação ao início do laço.
Durante a execução, o Python obtém cada valor do conjunto, um de cada vez, e o atribui à variável. Quando todos os valores do conjunto forem processados, o laço é encerrado.
Por exemplo, podemos usar uma string, que é essencialmente um conjunto de caracteres, como conjunto de valores:
message = "Hello"
for c in message:
print(c)
Nesse exemplo, a variável c
in
for
message
c
c
H e l l o
Frequentemente, o laço for
range()
for n in range(10):
print(n, end=" ")
Se a função range
0 1 2 3 4 5 6 7 8 9
Também é possível passar um valor mínimo para a função range()
for n in range(4, 10):
print(n, end=" ")
Neste caso, a sequência vai de 4 até 9. O console exibirá:
4 5 6 7 8 9
Além disso, a função range()
for n in range(0, 10, 2):
print(n, end=" ")
Aqui, a sequência vai de 0 até 8, com incrementos de 2. O resultado será:
0 2 4 6 8
Bloco else no laço for
O laço for
else
message = "Hello"
for c in message:
print(c)
else:
print(f"Último caractere: {c}. Ciclo concluído")
print("Execução do programa concluída")
Neste exemplo, obtemos o seguinte resultado no console:
H e l l o Último caractere: o. Ciclo concluído Execução do programa concluída
É importante notar que o bloco else
for
Laços aninhados
Um laço pode conter outro laço dentro de si. Veja o exemplo de uma tabela de multiplicação:
i = 1
j = 1
while i < 10:
while j < 10:
print(i * j, end="\t")
j += 1
print("\n")
j = 1
i += 1
O laço externo while i < 10
i
while j < 10
j
Durante cada iteração do laço interno, o produto de i
j
j
i
1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81
Laços for
for c1 in "ab":
for c2 in "cd":
print(f"{c1}{c2}")
Neste caso, o laço externo percorre a string "ab" e atribui cada caractere à variável c1
c2
ac ad bc bd
Saída de laços: break e continue
Para controlar a execução de laços, podemos usar os operadores especiais break
continue
break
continue
O operador break
number = 0
while number < 5:
number += 1
if number == 3: # Se number for igual a 3, saímos do laço
break
print(f"number = {number}")
Aqui, o laço while
number < 5
number
number
number
break
number = 1 number = 2
Diferentemente de break
continue
number = 0
while number < 5:
number += 1
if number == 3: # Se number for igual a 3, passamos para a próxima iteração
continue
print(f"number = {number}")
Neste caso, quando number for igual a 3, as instruções após o continue não serão executadas. O resultado será:
number = 1 number = 2 number = 4 number = 5