Compreender Loops em Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você obterá uma compreensão fundamental sobre loops (laços de repetição) em Python, que são ferramentas essenciais para automatizar tarefas repetitivas. Começaremos explorando os loops for e o conceito de iteração, aprendendo a processar sequências como listas e strings.

Em seguida, você descobrirá como usar a função range() com loops for para gerar sequências de números. Depois, introduziremos os loops while para repetição baseada em condições. Por fim, você aprenderá a controlar o fluxo tanto dos loops for quanto dos loops while usando as instruções break e continue.

Introduzir Loops For e Iteração

Neste passo, você aprenderá sobre o loop for em Python. Um loop for é usado para iterar sobre uma sequência, como uma lista (list), tupla (tuple) ou string. Iterar significa executar uma ação para cada item na sequência, um por um.

Primeiro, vamos usar um loop for para imprimir cada elemento de uma lista.

No explorador de arquivos do WebIDE à esquerda, você verá uma lista de arquivos. Encontre e abra o arquivo chamado for_loop_example.py. Adicione o seguinte código Python a ele:

## Define a list of numbers
numbers = [1, 2, 3, 4, 5]

## The for loop iterates over each item in the 'numbers' list.
## In each iteration, the current item is assigned to the 'number' variable.
for number in numbers:
  ## This code block is executed for each item.
  print(number)

Salve o arquivo pressionando Ctrl + S.

Para executar o script, abra o terminal integrado clicando em Terminal -> New Terminal no topo do WebIDE. Em seguida, execute o seguinte comando:

python for_loop_example.py

Você deverá ver a seguinte saída, com cada número impresso em uma nova linha:

1
2
3
4
5

Loops for também podem iterar sobre strings. Vamos tentar isso em um novo arquivo. Abra o arquivo string_loop.py no explorador de arquivos e adicione este código:

## Define a string
message = "Hello"

## Iterate over each character in the 'message' string
for char in message:
  ## Print each character
  print(char)

Salve o arquivo e execute-o a partir do terminal:

python string_loop.py

A saída será:

H
e
l
l
o

Isso demonstra que um loop for pode processar qualquer sequência, tratando uma string como uma sequência de caracteres.

Usar a Função range() com Loops For

A função range() é uma ferramenta poderosa frequentemente usada com loops for para gerar uma sequência de números. Isso é útil quando você precisa repetir uma ação um número específico de vezes.

A função range() pode ser usada de três maneiras:

  • range(stop): Gera números de 0 até, mas não incluindo, stop.
  • range(start, stop): Gera números de start até, mas não incluindo, stop.
  • range(start, stop, step): Gera números de start até stop com um incremento de step.

Vamos ver como isso funciona. Abra o arquivo range_example.py no explorador de arquivos e adicione o seguinte código:

## Use range(stop) to print numbers from 0 to 4
print("Numbers from 0 to 4:")
for i in range(5):
  print(i)

print("\n" + "="*20 + "\n") ## A separator for clarity

## Use range(start, stop) to print numbers from 2 to 5
print("Numbers from 2 to 5:")
for i in range(2, 6):
  print(i)

print("\n" + "="*20 + "\n") ## A separator for clarity

## Use range(start, stop, step) to print odd numbers from 1 to 9
print("Odd numbers from 1 to 9:")
for i in range(1, 10, 2):
  print(i)

Salve o arquivo e execute-o a partir do terminal:

python range_example.py

Você deverá ver a seguinte saída:

Numbers from 0 to 4:
0
1
2
3
4

====================

Numbers from 2 to 5:
2
3
4
5

====================

Odd numbers from 1 to 9:
1
3
5
7
9

Note que o valor stop nunca é incluído na sequência. Se você precisar executar uma ação um número fixo de vezes, mas não precisar do valor do contador, pode usar um sublinhado _ como nome da variável. Esta é uma convenção comum em Python.

## This loop will execute 5 times
for _ in range(5):
  print("Hello")

Introduzir Loops While

Neste passo, você aprenderá sobre o loop while. Diferentemente de um loop for que itera um número fixo de vezes, um loop while continua a ser executado enquanto uma condição especificada permanecer True.

A sintaxe básica de um loop while é:

while condition:
  ## Código a ser executado
  ## IMPORTANTE: Atualize uma variável para eventualmente tornar a condição False

É crucial garantir que a condição eventualmente se tornará falsa. Caso contrário, você criará um loop infinito (infinite loop), o que fará com que seu programa seja executado para sempre.

Vamos criar um script que usa um loop while para imprimir números de 1 a 5. Abra o arquivo while_loop_example.py e adicione o seguinte código:

## Initialize a counter variable
count = 1

## The loop continues as long as 'count' is less than or equal to 5
while count <= 5:
  ## Print the current value of count
  print(count)
  ## Increment count by 1. This is essential to prevent an infinite loop.
  count = count + 1 ## This can also be written as count += 1

Salve o arquivo e execute-o a partir do terminal:

python while_loop_example.py

Você deverá ver a seguinte saída:

1
2
3
4
5

Veja como o loop funciona:

  1. count é inicializado como 1.
  2. A condição count <= 5 é verificada. 1 <= 5 é True, então o corpo do loop é executado.
  3. 1 é impresso, e count é incrementado para 2.
  4. A condição é verificada novamente. 2 <= 5 é True, então o loop continua.
  5. Este processo se repete até que count se torne 6.
  6. Quando count é 6, a condição 6 <= 5 é False, e o loop termina.

Use loops for quando souber o número de iterações com antecedência. Use loops while quando a repetição depender de uma condição que pode mudar durante a execução.

Controlar o Fluxo do Loop com break e continue

Python fornece duas instruções, break e continue, para alterar o fluxo normal de um loop.

A instrução break termina imediatamente o loop em que se encontra. A execução continua na primeira instrução após o loop.

Vejamos um exemplo. Abra o arquivo break_example.py e adicione este código, que interrompe um loop quando uma determinada condição é satisfeita:

## Iterate through numbers from 0 to 9
for i in range(10):
  ## If i is 5, the 'if' condition becomes True
  if i == 5:
    print(f"Breaking loop at i = {i}")
    ## The break statement exits the loop immediately
    break
  print(i)

print("Loop finished.")

Salve o arquivo e execute-o:

python break_example.py

A saída será:

0
1
2
3
4
Breaking loop at i = 5
Loop finished.

O loop parou quando i se tornou 5, e os números de 5 a 9 nunca foram impressos.

A instrução continue pula o restante da iteração atual e prossegue para a próxima.

Vejamos como continue pode ser usado para pular a impressão de um número específico. Abra o arquivo continue_example.py e adicione o seguinte código:

## Initialize a counter
count = 0

## Loop while count is less than 10
while count < 10:
  count += 1
  ## If count is 5, the 'if' condition becomes True
  if count == 5:
    print(f"Skipping iteration at count = {count}")
    ## The continue statement skips the rest of this iteration
    continue
  ## This line is skipped when count is 5
  print(count)

print("Loop finished.")

Salve o arquivo e execute-o:

python continue_example.py

A saída será:

1
2
3
4
Skipping iteration at count = 5
6
7
8
9
10
Loop finished.

Neste caso, quando count era 5, a instrução continue foi executada. Isso fez com que a linha print(count) fosse ignorada para aquela iteração, e o loop seguiu para a próxima iteração, onde count se tornou 6.

Resumo

Neste laboratório, você aprendeu os fundamentos dos loops em Python. Você começou com o loop for, usando-o para iterar sobre sequências como listas e strings. Em seguida, explorou a função range() para criar sequências numéricas para loops for.

Posteriormente, você foi apresentado ao loop while para criar loops que executam enquanto uma condição for verdadeira. Por fim, você aprendeu a controlar a execução do loop com a instrução break para sair de um loop antecipadamente e a instrução continue para pular uma iteração. Esses conceitos são fundamentais para escrever programas Python eficientes e poderosos.