Como Verificar se um Loop foi Concluído em Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como determinar se um loop foi concluído em Python. Isso envolve entender como os loops for são executados e explorar diferentes técnicas para rastrear a conclusão do loop.

Você começará examinando um exemplo básico de loop for, iterando por uma lista de frutas e imprimindo cada uma. Em seguida, você aprenderá como usar uma variável de flag (flag variable) para monitorar o progresso do loop e, finalmente, descobrirá como aproveitar a cláusula else em conjunto com loops para executar código somente após o loop ter terminado normalmente.

Aprenda Como os Loops são Executados

Nesta etapa, você aprenderá como os loops for são executados em Python. Loops são construções fundamentais de programação que permitem repetir um bloco de código várias vezes. Entender como os loops funcionam é crucial para escrever programas eficientes e eficazes.

Vamos começar com um exemplo simples. Crie um arquivo chamado loop_example.py no seu diretório ~/project usando o editor VS Code.

## loop_example.py
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

Este código itera por uma lista de frutas e imprime cada fruta no console.

Para executar este script, abra seu terminal no VS Code e execute o seguinte comando:

python loop_example.py

Você deve ver a seguinte saída:

apple
banana
cherry

Vamos detalhar o que está acontecendo no código:

  1. fruits = ["apple", "banana", "cherry"]: Esta linha cria uma lista chamada fruits contendo três strings: "apple", "banana" e "cherry".
  2. for fruit in fruits:: Esta linha inicia um loop for. O loop itera sobre cada elemento na lista fruits. Em cada iteração, o elemento atual é atribuído à variável fruit.
  3. print(fruit): Esta linha está dentro do loop. Ela imprime o valor da variável fruit no console.

O loop executa três vezes, uma vez para cada fruta na lista. Na primeira iteração, fruit é "apple", então "apple" é impresso. Na segunda iteração, fruit é "banana", então "banana" é impresso. Na terceira iteração, fruit é "cherry", então "cherry" é impresso.

Agora, vamos modificar o script para incluir o índice de cada fruta. Modifique o arquivo loop_example.py da seguinte forma:

## loop_example.py
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(f"Index: {index}, Fruit: {fruit}")

Neste código modificado, usamos a função enumerate() para obter tanto o índice quanto o valor de cada elemento na lista.

Execute o script novamente:

python loop_example.py

Você deve ver a seguinte saída:

Index: 0, Fruit: apple
Index: 1, Fruit: banana
Index: 2, Fruit: cherry

A função enumerate() retorna uma sequência de pares (índice, elemento). Em cada iteração, o índice é atribuído à variável index, e o elemento é atribuído à variável fruit.

Entender como os loops executam é essencial para escrever programas que podem processar coleções de dados. Nas próximas etapas, você aprenderá técnicas mais avançadas para controlar a execução de loops.

Defina uma Variável de Flag para Rastrear a Conclusão

Nesta etapa, você aprenderá como usar uma variável de flag para rastrear a conclusão de uma tarefa dentro de um loop. Uma variável de flag é uma variável booleana (seja True ou False) que indica se uma determinada condição foi atendida. Esta é uma técnica comum para controlar o fluxo de um programa.

Vamos considerar um cenário em que você deseja procurar um número específico em uma lista e parar o loop assim que o encontrar. Crie um arquivo chamado flag_example.py no seu diretório ~/project usando o editor VS Code.

## flag_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 5
found = False  ## Initialize the flag variable

for number in numbers:
    print(f"Checking number: {number}")
    if number == target:
        found = True
        print(f"Found the target: {target}")
        break  ## Exit the loop

if found:
    print("Target found in the list.")
else:
    print("Target not found in the list.")

Neste código, inicializamos uma variável de flag chamada found como False. O loop itera pela lista numbers. Se o número atual for igual ao target, definimos found como True, imprimimos uma mensagem e saímos do loop usando a instrução break. Após o loop, verificamos o valor de found. Se for True, imprimimos uma mensagem indicando que o alvo foi encontrado. Caso contrário, imprimimos uma mensagem indicando que o alvo não foi encontrado.

Para executar este script, abra seu terminal no VS Code e execute o seguinte comando:

python flag_example.py

Você deve ver a seguinte saída:

Checking number: 1
Checking number: 2
Checking number: 3
Checking number: 4
Checking number: 5
Found the target: 5
Target found in the list.

Observe que o loop para assim que o número alvo (5) é encontrado. A instrução break sai do loop, impedindo iterações adicionais.

Agora, vamos modificar o script para procurar um número que não está na lista. Mude a variável target para 15:

## flag_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 15
found = False  ## Initialize the flag variable

for number in numbers:
    print(f"Checking number: {number}")
    if number == target:
        found = True
        print(f"Found the target: {target}")
        break  ## Exit the loop

if found:
    print("Target found in the list.")
else:
    print("Target not found in the list.")

Execute o script novamente:

python flag_example.py

Você deve ver a seguinte saída:

Checking number: 1
Checking number: 2
Checking number: 3
Checking number: 4
Checking number: 5
Checking number: 6
Checking number: 7
Checking number: 8
Checking number: 9
Checking number: 10
Target not found in the list.

Neste caso, o loop itera por toda a lista sem encontrar o número alvo. A variável found permanece False, e a mensagem "Target not found in the list." é impressa.

Usar uma variável de flag é uma maneira simples e eficaz de rastrear a conclusão de uma tarefa dentro de um loop. Essa técnica é útil em muitos cenários diferentes, como procurar um elemento em uma lista, validar a entrada do usuário ou processar dados de um arquivo.

Use a Cláusula else com Loops

Nesta etapa, você aprenderá como usar a cláusula else com loops for em Python. A cláusula else em um loop for é executada quando o loop é concluído normalmente, ou seja, quando o loop não é terminado por uma instrução break. Isso pode ser útil para realizar ações que só devem ser feitas se o loop for concluído sem encontrar um elemento específico ou encontrar um erro.

Vamos revisitar o exemplo da etapa anterior, onde procuramos um número alvo em uma lista. Podemos usar a cláusula else para imprimir uma mensagem se o número alvo não for encontrado. Crie um arquivo chamado else_example.py no seu diretório ~/project usando o editor VS Code.

## else_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 15

for number in numbers:
    print(f"Checking number: {number}")
    if number == target:
        print(f"Found the target: {target}")
        break
else:
    print("Target not found in the list.")

Neste código, a cláusula else está associada ao loop for. Se o loop for concluído sem encontrar o target (ou seja, a instrução break não for executada), o código dentro da cláusula else é executado.

Para executar este script, abra seu terminal no VS Code e execute o seguinte comando:

python else_example.py

Você deve ver a seguinte saída:

Checking number: 1
Checking number: 2
Checking number: 3
Checking number: 4
Checking number: 5
Checking number: 6
Checking number: 7
Checking number: 8
Checking number: 9
Checking number: 10
Target not found in the list.

Como o target (15) não está na lista numbers, o loop é concluído normalmente, e a cláusula else é executada, imprimindo a mensagem "Target not found in the list.".

Agora, vamos modificar o script para incluir o número alvo na lista. Mude a variável target para 5:

## else_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 5

for number in numbers:
    print(f"Checking number: {number}")
    if number == target:
        print(f"Found the target: {target}")
        break
else:
    print("Target not found in the list.")

Execute o script novamente:

python else_example.py

Você deve ver a seguinte saída:

Checking number: 1
Checking number: 2
Checking number: 3
Checking number: 4
Checking number: 5
Found the target: 5

Neste caso, o loop é terminado pela instrução break quando o target (5) é encontrado. Portanto, a cláusula else não é executada.

A cláusula else em um loop for fornece uma maneira concisa de executar código quando o loop é concluído normalmente, sem ser interrompido por uma instrução break. Isso pode ser útil para lidar com casos em que você precisa realizar uma ação específica somente se uma determinada condição não for atendida durante a execução do loop.

Resumo

Neste laboratório, você aprendeu como os loops for são executados em Python, iterando por uma lista de frutas e imprimindo cada fruta junto com seu índice. O laboratório demonstrou a estrutura básica de um loop for, incluindo o uso da função enumerate() para acessar tanto o índice quanto o valor de cada elemento na lista durante a iteração.

O exemplo inicial iterou por uma lista de frutas e imprimiu cada fruta. A modificação subsequente usou enumerate() para imprimir tanto o índice quanto a fruta, ilustrando como acessar tanto a posição quanto o valor dos elementos dentro de um loop.