Trilha de aprendizado · Nível 2 · Tutorial 3

Selecionar caminhos com if, elif e else

Implementar decisões que executam comportamentos diferentes conforme as condições e acompanhar qual caminho será escolhido.

  • Nível: Iniciante
  • Duração: 20 min
  • 7 passos
Selecionar caminhos com if, elif e else

O que você vai percorrer

  1. Executar um bloco somente quando a condição for verdadeira Escreva um if simples e acompanhe o que acontece quando sua condição é verdadeira ou falsa. 2 min
  2. Escolher entre dois caminhos com else Use if e else para executar um de dois blocos e manter uma mensagem comum após a decisão. 2 min
  3. Selecionar uma entre várias alternativas com elif Monte uma cadeia de condições e identifique quais testes são avaliados e qual bloco é escolhido. 3 min
  4. Ordenar condições e conferir os limites Organize faixas de pontuação e confira o resultado nos valores imediatamente próximos de cada limite. 3 min
  5. Diferenciar alternativas de decisões independentes Compare cadeias e decisões independentes para escolher entre um resultado exclusivo e ações que podem acontecer juntas. 3 min
  6. Acompanhar uma decisão dentro de outra Acompanhe dois níveis de decisão e use a indentação para identificar quais mensagens aparecem em cada caminho. 3 min
  7. Aplicar e revisar as escolhas de caminho Adapte um resultado fictício de jogo e confira limites, avisos independentes e decisões aninhadas no seu computador. 4 min

O que você vai aprender

  • Escrever decisões com if, com ou sem um caminho alternativo usando else.
  • Usar elif para selecionar entre várias alternativas.
  • Ordenar condições para que valores de fronteira sejam classificados no caminho correto.
  • Distinguir uma cadeia if/elif/else de vários comandos if independentes.
  • Acompanhar decisões aninhadas simples e identificar as instruções executadas após a decisão.

Antes de começar

  • Combinar condições com and, or e not
  • Localizar e corrigir erros básicos

Passo 1 de 7

Executar um bloco somente quando a condição for verdadeira

Escreva um if simples e acompanhe o que acontece quando sua condição é verdadeira ou falsa.

Um bloco que depende de uma condição

O if executa um bloco somente quando a condição é verdadeira. Escreva if, a condição e dois-pontos (:). Abaixo, use a indentação para indicar quais instruções pertencem ao bloco.

Neste exemplo, o print com quatro espaços de recuo pertence ao if. O último print, sem recuo, fica depois da decisão.

python
pontos = 12

if pontos >= 10:
    print("Bônus liberado")

print("Fim da rodada")

Por onde a execução passa?

Fluxograma: a condição pontos >= 10 tem duas saídas. Verdadeira leva a Bônus liberado; falsa pula essa ação. Os dois caminhos se juntam antes de Fim da rodada.

Com 12 pontos, aparecem as duas mensagens. Se a condição for falsa, o bloco é pulado, mas “Fim da rodada” continua sendo exibido.

Escreva a linha de decisão

Complete com a linha inteira que libera o bônus quando pontos é maior ou igual a 10.

pontos = 12
____
    print("Bônus liberado")

Preveja os dois resultados

Acompanhe a execução

python
pontos = 10

if pontos >= 10:
    print("Bônus liberado")

print("Fim da rodada")

Quais mensagens aparecem, na ordem, com pontos = 10? E se você trocar apenas esse valor por 9? Explique por que “Fim da rodada” aparece nos dois casos.

Escreva pelo menos 20 caracteres (0/20).

Passo 2 de 7

Escolher entre dois caminhos com else

Use if e else para executar um de dois blocos e manter uma mensagem comum após a decisão.

Um caminho para cada resultado

Com um if simples, a condição falsa faz o programa pular o bloco. O else acrescenta uma alternativa: seu bloco é executado quando a condição do if é falsa.

Escreva else: sem condição e alinhado ao if. Indente as instruções de cada bloco. Exatamente um dos dois blocos será executado.

Uma porta no jogo

Com tem_chave = True, a saída será “Porta aberta” e depois “Fim da tentativa”. A última mensagem está fora dos dois blocos.

python
tem_chave = True

if tem_chave:
    print("Porta aberta")
else:
    print("Porta trancada")

print("Fim da tentativa")

Compare os caminhos

Dois fluxogramas lado a lado. Sem else, o caminho falso pula a ação Porta aberta. Com else, o caminho falso executa Porta trancada. Nos dois diagramas, os caminhos se reúnem em Fim da tentativa.

O else acrescenta uma ação ao caminho falso. A mensagem após a decisão continua sendo executada nos dois casos.

Acompanhe a alternativa

No código da porta, alteramos apenas tem_chave para False. Qual será a saída, na ordem?

Escreva dois caminhos

Pode começar a partida?

Escreva um programa curto seguindo estas regras:

  • Comece com energia = 8.
  • Se energia >= 10, mostre “Pode jogar”.
  • Caso contrário, mostre “Recupere energia”.
  • Após a decisão, mostre “Verificação concluída”, qualquer que seja o caminho escolhido.

Use if e else e cuide do recuo de cada print.

Escreva pelo menos 30 caracteres (0/30).

Passo 3 de 7

Selecionar uma entre várias alternativas com elif

Monte uma cadeia de condições e identifique quais testes são avaliados e qual bloco é escolhido.

Um novo teste quando o anterior falha

Use elif para testar outra condição quando as anteriores forem falsas. Ele recebe uma condição e dois-pontos, alinhado ao if.

A cadeia começa com um if, pode ter um ou mais elif e pode terminar com else. Ao encontrar a primeira condição verdadeira, Python executa aquele bloco e não avalia os testes restantes da cadeia.

Escolha do modo

Com modo = 2, a saída será Treino e, na linha seguinte, Fim da escolha.

python
modo = 2

if modo == 1:
    print("Aventura")
elif modo == 2:
    print("Treino")
else:
    print("Modo desconhecido")

print("Fim da escolha")

Siga apenas um caminho

Fluxograma: modo == 1 leva a Aventura quando verdadeiro e ao teste modo == 2 quando falso. O segundo teste leva a Treino quando verdadeiro e a Modo desconhecido quando falso. Os três caminhos se reúnem em Fim da escolha.

Para modo = 2, o primeiro teste é falso e o segundo é verdadeiro. O else não é executado.

Falso ou nem avaliado?

Na cadeia anterior, o if testa modo == 1 e o elif testa modo == 2. Associe cada valor ao que acontece.

Toque em um item e depois no par correspondente.

Mais alternativas, sem else

Você pode acrescentar outros elif. O else é opcional: sem ele, se todas as condições forem falsas, nenhum bloco da cadeia será executado.

Uma cadeia executa no máximo um bloco. Com else, há um caminho mesmo quando todos os testes são falsos.

Nenhuma opção corresponde

Leia com modo = 4: os três testes são falsos. A única mensagem exibida é Fim da escolha.

python
modo = 4

if modo == 1:
    print("Aventura")
elif modo == 2:
    print("Treino")
elif modo == 3:
    print("Desafio")

print("Fim da escolha")

Complete a cadeia

O trecho está incompleto. Falta a palavra-chave que introduz o segundo teste.

python
modo = 2

if modo == 1:
    print("Aventura")
____ modo == 2:
    print("Treino")
else:
    print("Modo desconhecido")

Qual palavra-chave completa a lacuna mantendo uma única cadeia de alternativas?

Passo 4 de 7

Ordenar condições e conferir os limites

Organize faixas de pontuação e confira o resultado nos valores imediatamente próximos de cada limite.

Uma condição pode esconder outra

Em um jogo, a classificação deve ser: Ouro a partir de 80 pontos, Prata de 50 até menos de 80 e Bronze abaixo de 50. Considere pontuações inteiras não negativas.

Observe esta tentativa: com 90 pontos, as duas comparações seriam verdadeiras. Mas a primeira já seleciona Prata.

Ordem incorreta

python
pontos = 90

if pontos >= 50:
    print("Prata")
elif pontos >= 80:
    print("Ouro")
else:
    print("Bronze")

O bloco Ouro fica inalcançável: todo valor que atende a pontos >= 80 já foi capturado por pontos >= 50.

Para classificar essas faixas usando >=, teste os limites do maior para o menor. Assim, a condição mais ampla não esconde a faixa superior.

Organize a classificação

Ordene as regras de cima para baixo para que a cadeia produza a classificação desejada.

  1. Se nenhum teste for verdadeiro, mostrar Bronze.
  2. Testar pontos >= 80 e mostrar Ouro.
  3. Se o teste anterior for falso, testar pontos >= 50 e mostrar Prata.

Quem fica com o ponto da fronteira?

Na cadeia corrigida, >= inclui o limite: 80 entra em Ouro e 50 entra em Prata.

Se apenas pontos >= 80 fosse trocado por pontos > 80, exatamente 80 deixaria de entrar em Ouro e cairia em Prata. A ordem e o operador precisam combinar com a regra.

Classificação corrigida

python
pontos = 80

if pontos >= 80:
    print("Ouro")
elif pontos >= 50:
    print("Prata")
else:
    print("Bronze")

As faixas na linha numérica

Linha numérica com Bronze de 0 até antes de 50, Prata de 50 até antes de 80 e Ouro de 80 em diante. Os pontos 50 e 80 pertencem às faixas que começam neles.

Círculo preenchido inclui o ponto; círculo vazio exclui. A faixa Prata termina antes de 80 porque Ouro foi testado primeiro.

Confira abaixo, no limite e acima

Use a cadeia corrigida: primeiro pontos >= 80, depois pontos >= 50, por último else.

  1. Preveja a classificação para 49, 50, 51, 79, 80 e 81, nessa ordem.
  2. Explique por que 80 entra em Ouro.
  3. Se o teste de 50 voltasse a ser o primeiro, qual classificação ficaria inalcançável e por quê?

Escreva pelo menos 40 caracteres (0/40).

Passo 5 de 7

Diferenciar alternativas de decisões independentes

Compare cadeias e decisões independentes para escolher entre um resultado exclusivo e ações que podem acontecer juntas.

Mesmas condições, decisões diferentes

Compare os programas abaixo. Com pontos = 80, as duas condições seriam verdadeiras.

Na cadeia, o primeiro bloco é escolhido e o elif não é avaliado. Já cada if independente inicia uma nova decisão: depois do primeiro bloco, o programa chega ao segundo if e também testa sua condição.

Programa A — uma cadeia

python
pontos = 80

if pontos >= 70:
    print("Meta de 70 atingida")
elif pontos >= 50:
    print("Meta de 50 atingida")

Programa B — dois if independentes

python
pontos = 80

if pontos >= 70:
    print("Meta de 70 atingida")
if pontos >= 50:
    print("Meta de 50 atingida")

Compare o fluxo e a saída

Comparação para pontos igual a 80. No programa A, o teste pontos >= 70 leva ao primeiro aviso e ao fim, sem avaliar o elif. No programa B, após o primeiro aviso, o teste pontos >= 50 também é feito e gera o segundo aviso.

A exibe somente “Meta de 70 atingida”. B exibe “Meta de 70 atingida” e depois “Meta de 50 atingida”.

E quando a primeira condição é falsa?

Altere apenas pontos = 80 para pontos = 60 nos dois programas da tela anterior. Qual será a saída?

Escolha pela regra do programa

Uma única classificação: use uma cadeia. Mesmo com condições sobrepostas, ela seleciona no máximo um bloco; com else, há um caminho para quando todos os testes forem falsos.

Avisos que podem aparecer juntos: use if independentes. Cada condição verdadeira pode gerar seu próprio aviso, como no programa B.

Uma pontuação, uma classificação

Aqui, 80 pontos devem gerar apenas “Ouro”, e não “Ouro” e “Prata”.

python
pontos = 80

if pontos >= 70:
    print("Ouro")
elif pontos >= 50:
    print("Prata")
else:
    print("Bronze")

Dica

A pergunta que decide a estrutura

Pergunte: “Se duas condições forem verdadeiras, quero executar as duas ações?” Se sim, decisões independentes permitem isso. Se apenas uma alternativa deve ser escolhida, use uma cadeia.

Defenda sua escolha

Um jogo tem duas regras:

  1. Mostrar uma única classificação: Ouro com 70 pontos ou mais, Prata com 50 ou mais e menos de 70, Bronze abaixo de 50.
  2. Mostrar todos os avisos aplicáveis: “Bônus liberado” com 50 pontos ou mais e “Desafio concluído” com 70 pontos ou mais.

Qual estrutura você escolheria para cada regra: uma cadeia if/elif/else ou if independentes? Justifique e diga qual classificação e quais avisos apareceriam com 80 pontos.

Escreva pelo menos 30 caracteres (0/30).

Passo 6 de 7

Acompanhar uma decisão dentro de outra

Acompanhe dois níveis de decisão e use a indentação para identificar quais mensagens aparecem em cada caminho.

Uma decisão dentro de um caminho

Uma decisão pode ficar dentro do bloco de outra. No código abaixo, novo_recorde só é testado se partida_encerrada for verdadeiro.

O if interno tem 4 espaços de recuo; seus blocos têm 8. Cada else corresponde ao if no mesmo nível de indentação.

Resultado de uma partida

python
partida_encerrada = True
novo_recorde = False

if partida_encerrada:
    if novo_recorde:
        print("Novo recorde")
    else:
        print("Sem recorde")
    print("Resultado registrado")
else:
    print("Partida em andamento")

print("Até logo")

Dois níveis, dois pontos de encontro

Código com blocos destacados ao lado do fluxograma correspondente. Se partida_encerrada for verdadeira, novo_recorde seleciona Novo recorde ou Sem recorde, e ambos seguem para Resultado registrado. Se partida_encerrada for falsa, o fluxo vai direto para Partida em andamento. Todos os caminhos chegam a Até logo.

Os caminhos internos se encontram antes de “Resultado registrado”. Os caminhos externos se encontram antes de “Até logo”.

A qual bloco pertence?

Relacione cada trecho do código anterior à sua posição na estrutura.

Toque em um item e depois no par correspondente.

Depois de qual decisão?

Com partida_encerrada = True e novo_recorde = False, o programa entra no bloco externo e escolhe o else interno.

Depois, sai apenas da decisão interna: ainda precisa executar print("Resultado registrado"). Por fim, segue para a instrução fora de toda a decisão.

Exemplo

Saída, na ordem

Sem recorde
Resultado registrado
Até logo

Dica

O caminho externo controla o acesso

Se partida_encerrada for falso, o teste de novo_recorde nem será alcançado. “Resultado registrado” também será pulado, pois pertence ao bloco verdadeiro externo. “Até logo” continuará sendo exibido.

Rastreie os dois cenários

Considere o mesmo programa, alterando apenas os valores iniciais:

A: partida_encerrada = True e novo_recorde = True.
B: partida_encerrada = False e novo_recorde = True.

Liste as mensagens de cada cenário na ordem em que aparecem. No cenário B, o teste de novo_recorde é executado? Explique por quê.

Escreva pelo menos 30 caracteres (0/30).

Passo 7 de 7

Aplicar e revisar as escolhas de caminho

Adapte um resultado fictício de jogo e confira limites, avisos independentes e decisões aninhadas no seu computador.

Prepare o programa no seu computador

Um resultado, várias decisões

No seu editor, crie o arquivo resultado.py com o código abaixo e execute-o.

A classificação só acontece quando a partida está concluída. O aviso de energia é independente: pode aparecer junto com qualquer resultado. A mensagem final fica fora de todas as decisões.

Código-base completo

Nesta versão inicial, a saída é Prata, Energia baixa e Fim da análise, cada mensagem em uma linha.

python
partida_concluida = True
pontos = 80
energia = 15

if partida_concluida:
    if pontos >= 90:
        print("Ouro")
    elif pontos >= 50:
        print("Prata")
    else:
        print("Bronze")
else:
    print("Partida em andamento")

if energia <= 20:
    print("Energia baixa")

print("Fim da análise")

Adapte as faixas e confira o fluxo

Novas regras do jogo

Altere os dois limites da classificação: Ouro passa a exigir pelo menos 80 pontos; Prata, pelo menos 40 pontos, desde que Ouro não tenha sido escolhido. Abaixo de 40, o resultado é Bronze.

Mantenha as demais regras. Salve o arquivo e execute cada caso da tabela, alterando apenas os valores iniciais. Use energia = 15 em todos os casos.

Mapa do programa adaptado

Fluxograma: se a partida foi concluída, testar pontos maior ou igual a 80 para Ouro; se falso, testar pontos maior ou igual a 40 para Prata; se falso, Bronze. Se a partida não foi concluída, mostrar Partida em andamento e pular a classificação. Todos os caminhos chegam ao teste de energia menor ou igual a 20. Se verdadeiro, mostrar Energia baixa. Ao final, sempre mostrar Fim da análise.

Os resultados se reúnem antes do teste independente de energia. A mensagem final vem depois de todos os caminhos.

Exemplo

Saídas esperadas após a adaptação

Cada seta abaixo separa mensagens que devem aparecer em linhas diferentes. Mantenha energia = 15.

Com partida_concluida = True:

  • 39 pontos: Bronze → Energia baixa → Fim da análise
  • 40 pontos: Prata → Energia baixa → Fim da análise
  • 41 pontos: Prata → Energia baixa → Fim da análise
  • 79 pontos: Prata → Energia baixa → Fim da análise
  • 80 pontos: Ouro → Energia baixa → Fim da análise
  • 81 pontos: Ouro → Energia baixa → Fim da análise

Com partida_concluida = False:

  • 80 pontos: Partida em andamento → Energia baixa → Fim da análise

Os seis primeiros casos conferem os valores imediatamente abaixo, iguais e imediatamente acima dos dois limites.

Registre sua verificação

O que seu programa executou?

Depois de executar os casos no seu computador:

  1. Cole aqui a cadeia interna que você alterou, preservando a indentação.
  2. Registre as saídas de três casos, todos com energia = 15: partida concluída com 40 pontos; concluída com 80 pontos; não concluída com 80 pontos.
  3. Explique por que o último caso não mostra medalha, mas ainda mostra o aviso e a mensagem final.

Compare seu relato com a resposta de referência após responder; não é necessário enviar o arquivo.

Escreva pelo menos 80 caracteres (0/80).

Revisão final

Resumo

Checklist para escolher caminhos

Antes de considerar uma decisão pronta, confira:

  • Sintaxe: if e elif têm condição e dois-pontos; else tem apenas dois-pontos.
  • Indentação: os recuos delimitam os blocos, e cada else se alinha ao if correspondente.
  • Alternativas: uma cadeia executa só o primeiro bloco cuja condição é verdadeira; sem else, pode não executar nenhum.
  • Limites: nesta classificação com >=, o maior limite vem primeiro; confira valores abaixo, iguais e acima de cada fronteira.
  • Ações cumulativas: use if independentes quando mais de uma ação puder acontecer, como classificação e aviso.
  • Aninhamento e retomada: a decisão interna depende do caminho externo; neste programa, o print final sem recuo é executado qualquer que seja o resultado.

Escolhas de caminho revisadas

Parabéns! Você concluiu: Selecionar caminhos com if, elif e else

Você chegou ao fim de Selecionar caminhos com if, elif e else. Use o checklist para escrever suas próximas decisões e acompanhar exatamente quais instruções serão executadas.

Baixe o Aplicativo agora para ter acesso a + de 5000 cursos gratuitos, exercícios, certificado e muito conteúdo sem pagar nada!

  • Cursos online 100% gratuitos do início ao fim

    Milhares de cursos online em vídeo, ebooks e áudiobooks.

  • Mais de 60 mil exercícios gratuitos

    Para testar seus conhecimentos no decorrer dos cursos online

  • Certificado Digital gratuito válido em todo o Brasil

    Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail

Aplicativo Cursa na tela de ebook, na tela de curso em vídeo e na tela de exercícios do curso, mais o certificado de conclusão de curso