Introdução
Neste laboratório, você explorará as estruturas de controle fundamentais do Python: instruções condicionais e loops. Com base no conhecimento adquirido em laboratórios anteriores, você aprenderá a controlar o fluxo de seus programas usando instruções if-else, loops for e loops while. Esta experiência prática aprofundará sua compreensão dos conceitos centrais do Python e o preparará para escrever programas mais complexos e dinâmicos.
Compreendendo Instruções Condicionais
Nesta etapa, você aprenderá sobre as instruções condicionais em Python, especificamente a estrutura if-else.
Abra o interpretador Python digitando o seguinte comando no seu terminal:
python
Você verá o prompt do Python (>>>), indicando que agora está no shell interativo do Python.

Vamos começar com uma instrução if simples. No interpretador Python, digite o seguinte:
age = 20
if age >= 18:
print("You are an adult.")
Saída:
You are an adult.
Dicas: Tenha cuidado com a indentação, ela é fundamental no Python. Recomenda-se o uso de quatro espaços para a indentação.
A instrução if verifica se a condição age >= 18 é verdadeira. Se for, o bloco de código indentado é executado.
Agora, vamos adicionar uma cláusula else:
age = 15
if age >= 18:
print("You are an adult.")
else:
print("You are a minor.")
Saída:
You are a minor.
A cláusula else fornece uma ação alternativa quando a condição é falsa.
Para condições mais complexas, podemos usar cláusulas elif (abreviação de else if):
age = 65
if age < 13:
print("You are a child.")
elif age < 20:
print("You are a teenager.")
elif age < 65:
print("You are an adult.")
else:
print("You are a senior citizen.")
Saída:
You are a senior citizen.
As cláusulas elif permitem verificar múltiplas condições em sequência.
Lembre-se, a indentação é crucial no Python. Ela define os blocos de código associados a cada condição.
Explorando Loops "For"
Nesta etapa, você aprenderá sobre os loops for, que são usados para iterar sobre sequências (como listas, strings ou intervalos) no Python.
Vamos começar com um loop for simples usando um intervalo (range). No interpretador Python, digite:
for i in range(5):
print(i)
Saída:
0
1
2
3
4
A função range(5) gera uma sequência de números de 0 a 4, e o loop percorre cada um desses números.
A função range() pode receber vários argumentos para especificar os valores de início, fim e o passo (incremento). Vamos tentar um intervalo diferente:
for i in range(1, 10, 2):
print(i)
Saída:
1
3
5
7
9
- A função
range(1, 10, 2)gera uma sequência de números começando em 1, indo até (mas não incluindo) 10, com um passo de 2.
Agora, vamos iterar sobre uma lista:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(f"I like {fruit}")
Saída:
I like apple
I like banana
I like cherry
Aqui, o loop percorre cada item na lista fruits.
Você também pode usar loops for com strings:
for char in "Python":
print(char.upper())
Saída:
P
Y
T
H
O
N
Este loop percorre cada caractere da string "Python".
Vamos combinar um loop for com instruções condicionais:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers:
if num % 2 == 0:
print(f"{num} is even")
else:
print(f"{num} is odd")
Saída:
1 is odd
2 is even
3 is odd
4 is even
5 is odd
6 is even
7 is odd
8 is even
9 is odd
10 is even
Este loop verifica cada número na lista e imprime se ele é par (even) ou ímpar (odd).
Entendendo o operador módulo (
%): O símbolo%é chamado de operador módulo. Ele retorna o resto da divisão de um número por outro. Por exemplo:
5 % 2resulta em1(porque 5 dividido por 2 é 2 com resto 1)4 % 2resulta em0(porque 4 dividido por 2 é 2 com resto 0)10 % 3resulta em1(porque 10 dividido por 3 é 3 com resto 1)Quando verificamos
num % 2 == 0, estamos perguntando: "A divisão deste número por 2 deixa resto 0?". Se a resposta for sim, o número é par. Se o resto for 1, o número é ímpar. O operador==é o comparador de igualdade que verifica se dois valores são idênticos.
Compreendendo Loops "While"
Nesta etapa, você aprenderá sobre os loops while, que são usados para repetir um bloco de código enquanto uma condição for verdadeira.
Vamos começar com um loop while simples. No interpretador Python, digite:
count = 0
while count < 5:
print(count)
count += 1
Saída:
0
1
2
3
4
Este loop continua sendo executado enquanto a variável count for menor que 5.
Os loops while são frequentemente usados quando você não sabe antecipadamente quantas vezes precisará iterar. Veja um exemplo:
import random
number = random.randint(1, 10)
guess = 0
while guess != number:
guess = int(input("Guess a number between 1 and 10: "))
if guess < number:
print("Too low!")
elif guess > number:
print("Too high!")
else:
print(f"Congratulations! You guessed the number {number}!")
Isso cria um jogo de adivinhação simples onde o usuário continua tentando até acertar o número correto. Quando o palpite do usuário coincide com o número sorteado, a cláusula else é executada e exibe a mensagem de parabéns.
Tenha cuidado com os loops while — se a condição nunca se tornar falsa, você criará um loop infinito. Veja um exemplo (mas não o execute):
while True:
print("This will print forever!")
Se você acidentalmente executar um loop infinito, pode interrompê-lo pressionando Ctrl+C.
Você pode usar a instrução break para sair de um loop prematuramente:
count = 0
while True:
print(count)
count += 1
if count >= 5:
break
Saída:
0
1
2
3
4
Este loop normalmente rodaria para sempre, mas a instrução break o encerra quando count atinge 5.
Loops Aninhados e Comandos de Controle de Loop
Nesta etapa, você aprenderá sobre loops aninhados e comandos adicionais de controle de fluxo.
Loops aninhados são loops colocados dentro de outros loops. Aqui está um exemplo de loops for aninhados:
for i in range(3):
for j in range(2):
print(f"i: {i}, j: {j}")
Saída:
i: 0, j: 0
i: 0, j: 1
i: 1, j: 0
i: 1, j: 1
i: 2, j: 0
i: 2, j: 1
O loop interno completa todas as suas iterações para cada iteração única do loop externo.
Além do break, o Python oferece a instrução continue, que pula o restante da iteração atual e passa diretamente para a próxima:
for num in range(10):
if num % 2 == 0:
continue
print(num)
Saída:
1
3
5
7
9
Este loop imprime apenas números ímpares, pulando os pares.
Entendendo o operador módulo neste contexto: Aqui,
num % 2 == 0verifica se o número é par. Quando esta condição é verdadeira, o comandocontinueignora a linhaprint(num)e volta para o início do loop para o próximo número. Assim, apenas números ímpares (onde o resto da divisão por 2 é 1) chegam à instrução de impressão.
Você também pode usar cláusulas else com loops. O bloco else é executado se o loop terminar normalmente (ou seja, sem ser interrompido por um break):
for num in range(2, 10):
for i in range(2, num):
if num % i == 0:
print(f"{num} is not prime")
break
else:
print(f"{num} is prime")
Saída:
2 is prime
3 is prime
4 is not prime
5 is prime
6 is not prime
7 is prime
8 is not prime
9 is not prime
Este loop aninhado verifica números primos. A cláusula else associada ao for interno só é executada quando o loop termina sem encontrar nenhum divisor, indicando que o número é primo.
Juntando Tudo
Nesta etapa final, você criará um programa simples que utiliza as estruturas de controle que aprendeu neste laboratório.
Saia do interpretador Python digitando exit() ou pressionando Ctrl+D.
Abra o WebIDE no ambiente VM da LabEx.

Crie um novo arquivo chamado number_analyzer.py no diretório ~/project usando o seguinte comando:
touch ~/project/number_analyzer.py
Abra o arquivo recém-criado no editor do WebIDE.
Copie e cole o seguinte código no arquivo:
def analyze_numbers():
numbers = []
while True:
user_input = input("Enter a number (or 'done' to finish): ")
if user_input.lower() == 'done':
break
try:
number = float(user_input)
numbers.append(number)
except ValueError:
print("Invalid input. Please enter a number or 'done'.")
if not numbers:
print("No numbers entered.")
return
total = sum(numbers)
average = total / len(numbers)
maximum = max(numbers)
minimum = min(numbers)
print(f"\nAnalysis of {len(numbers)} numbers:")
print(f"Total: {total}")
print(f"Average: {average:.2f}")
print(f"Maximum: {maximum}")
print(f"Minimum: {minimum}")
print("\nNumber distribution:")
for num in numbers:
if num < average:
print(f"{num} is below average")
elif num > average:
print(f"{num} is above average")
else:
print(f"{num} is equal to average")
if __name__ == "__main__":
analyze_numbers()
Este programa demonstra o uso de loops while, loops for, instruções condicionais e tratamento de exceções.
Salve o arquivo (o salvamento automático está ativado) e execute-o usando o seguinte comando no terminal:
python ~/project/number_analyzer.py
Insira alguns números quando solicitado e digite done para ver a análise. Você deverá ver uma saída semelhante a esta:
Enter a number (or 'done' to finish): 10
Enter a number (or 'done' to finish): 20
Enter a number (or 'done' to finish): 30
Enter a number (or 'done' to finish): 40
Enter a number (or 'done' to finish): done
Analysis of 4 numbers:
Total: 100.0
Average: 25.00
Maximum: 40.0
Minimum: 10.0
Number distribution:
10.0 is below average
20.0 is below average
30.0 is above average
40.0 is above average
Se você cometer um erro ao inserir os dados, poderá executar o programa novamente. Esta é uma boa oportunidade para praticar a execução de scripts Python várias vezes com entradas diferentes.
Resumo
Neste laboratório, você explorou as estruturas de controle fundamentais do Python: instruções condicionais (if-else), loops for e loops while. Você aprendeu a controlar o fluxo de seus programas, tomar decisões com base em condições e iterar sobre sequências de dados. Também praticou o uso de loops aninhados e comandos de controle como break e continue.
Essas estruturas de controle formam a espinha dorsal da programação em Python, permitindo a criação de programas mais complexos e dinâmicos. Você viu como esses conceitos podem ser combinados para criar um programa útil que analisa um conjunto de números inseridos pelo usuário.
À medida que você continua sua jornada no Python, descobrirá que essas estruturas são essenciais para resolver uma grande variedade de problemas de programação. Lembre-se de praticar esses conceitos regularmente, experimentando diferentes combinações e casos de uso para reforçar seu aprendizado.



