Na Parte 1 da nossa trilha, aprendemos que variáveis funcionam como caixas onde guardamos informações. Mas até agora, nossos programas se comportam de forma muito mecânica e linear: eles apenas leem e executam as instruções linha por linha, de cima para baixo, executando sempre o mesmo roteiro exato.
Na vida real, a inteligência está na capacidade de avaliar situações e tomar caminhos diferentes ou repetir tarefas de forma automática. Se o semáforo estiver verde, você avança; se estiver vermelho, você para. Se o prato ainda tiver comida, você dá mais uma garfada.
Nesta Parte 2, você aprenderá a colocar esse tipo de inteligência no seu código em Python usando Condicionais e Loops (Laços de Repetição).
TL;DR: Condicionais (if,elif,else) permitem que o seu programa tome caminhos diferentes de acordo com testes lógicos. Loops (for,while) fazem o computador repetir tarefas repetitivas sem que você precise reescrever o mesmo código dezenas de vezes.
---
Tomando Decisões no Código (If, Elif e Else)
Imagine a cancela de um pedágio automático na estrada. O carro se aproxima, um sensor lê a tag no para-brisa e o sistema faz uma pergunta lógica: "O motorista tem saldo na conta?".
- Se a resposta for Sim: a cancela abre e o carro passa.
- Senão (Se a resposta for Não): a cancela permanece fechada e uma luz vermelha acende.
No Python, escrevemos essa exata lógica usando as palavras-chave if (Se) e else (Senão). Veja como fica no código:
saldo = 25.50
if saldo >= 10.00:
print("Cancela aberta. Boa viagem!")
else:
print("Saldo insuficiente. Por favor, pare no guichê manual.")E se tivermos mais de dois caminhos possíveis? (Elif)
Muitas vezes, a nossa vida não é apenas "sim ou não". Temos múltiplas opções.
Imagine a triagem de um pronto-socorro que classifica os pacientes por cores de urgência. Para isso, o Python possui a palavra-chave elif (uma abreviação de else if, que significa "Senão se"):
cor_pulseira = "amarela"
if cor_pulseira == "vermelha":
print("Atendimento imediato (Emergência)!")
elif cor_pulseira == "amarela":
print("Atendimento em até 30 minutos.")
else:
print("Atendimento padrão por ordem de chegada.")---
A Regra de Ouro do Python: Indentação
Se você olhar com atenção os códigos acima, notará que as linhas abaixo do if, elif e else possuem um recuo (espaço em branco) antes de começarem. Esse recuo é chamado de Indentação.
Em outras linguagens, os programadores usam chaves {} ou palavras como begin/end para dizer quais instruções pertencem ao bloco de decisão. O Python escolheu uma forma muito mais limpa: a indentação visual é obrigatória.
Pense na indentação como os tópicos em uma receita de bolo:
- Ingredientes do Bolo:
- 3 ovos
- 2 xícaras de açúcar
- Ingredientes da Cobertura:
- 1 lata de leite condensado
- 3 colheres de chocolate em pó
Se você esquecer de colocar os 4 espaços de recuo na linha do print após um if, o Python não saberá que aquela ação depende do teste lógico e travará o programa com um erro de indentação (IndentationError).
---
Automatizando Trabalho com Loops (Laços de Repetição)
Computadores são excelentes em fazer tarefas repetitivas e chatas sem reclamar ou se cansar. Para instruir o computador a repetir comandos, usamos os Loops. No Python, temos duas ferramentas principais para isso: o for e o while.
1. O Loop for (Repetição com Fim Definido)
Imagine que você tem um pacote de 10 envelopes de cartas e precisa colar um selo em cada um. Você pega o primeiro, cola, passa para o segundo, cola... até acabar o décimo. Você sabe exatamente quantas vezes fará isso do início ao fim.
No Python, o loop for é perfeito para percorrer sequências conhecidas ou lotes de dados:
# Repetindo uma tarefa exatamente 5 vezes
for vez in range(5):
print("Carimbando envelope número:", vez + 1)range(5): É uma função que gera uma fila de números de 0 até 4 (totalizando 5 números).vez: É a variável que guarda o número da rodada atual. A cada ciclo, ela assume o próximo número da fila.
2. O Loop while (Repetição baseada em uma Condição)
Agora, imagine que você está pulando corda. Você não define antes: "vou dar exatamente 43 pulos". Em vez disso, a lógica da sua cabeça é: "enquanto eu não tropeçar na corda, continuo pulando".
Esse é o papel do while (enquanto). Ele repete o código enquanto uma condição lógica for verdadeira. Quando ela se torna falsa, o loop para imediatamente:
energia = 3
while energia > 0:
print("Pulando corda... Energia atual:", energia)
energia = energia - 1 # Consome energia a cada pulo
print("Ufa! Fiquei cansado e parei.")---
Tabela Comparativa: Qual loop escolher?
| Tipo de Loop | Quando Usar | Analogia do Mundo Real |
|---|---|---|
for | Quando você sabe o número exato de repetições ou quer percorrer cada item de uma lista. | Carimbar um lote fechado de 10 documentos. |
while | Quando o loop depende de um evento externo ou de uma condição que pode mudar a qualquer momento. | Tomar banho enquanto a água do chuveiro estiver saindo morna. |
---
Perguntas Frequentes
O que é um "Loop Infinito" e como evitá-lo?
Um loop infinito acontece quando a condição do loop while nunca se torna falsa. Por exemplo, se no código do while acima esquecêssemos de diminuir a energia a cada pulo (energia = energia - 1), o programa continuaria rodando "pulando corda" para sempre, travando o terminal. Para interromper um loop infinito no terminal do VS Code, clique dentro dele e aperte as teclas Ctrl + C.
Por que o range(5) começa em 0 e vai até 4, e não de 1 a 5?
Em programação, quase toda contagem de posições começa no número 0 (indexação baseada em zero). É um padrão técnico de armazenamento de dados na memória dos computadores. Por isso, a sequência gerada por range(5) é [0, 1, 2, 3, 4].
---
Próximo Passo: Agrupando Instruções e Dados
Parabéns! Agora seu programa já sabe pensar, escolher caminhos e repetir tarefas. Você deu um passo gigantesco no seu aprendizado de lógica.
Porém, conforme escrevemos códigos mais complexos, não queremos reescrever as mesmas regras de decisões e loops em várias partes do arquivo. Na Parte 3 da nossa trilha, aprenderemos sobre as Funções (para empacotar blocos de códigos) e estruturas de dados dinâmicas (Listas e Dicionários) para gerenciar coleções de informações de forma avançada.
Ficou com alguma dúvida sobre como funciona a indentação ou as decisões do If/Else? Deixe um comentário abaixo para debatermos!