🛣️ 3.11 O Comando ELIF

🎯 Objetivo

Aprender a lidar com múltiplas condições de forma elegante e legível utilizando o comando elif (else if) e conhecer a nova estrutura match-case do Python moderno.

🏗️ O Conceito

No desenvolvimento de jogos ou sistemas, raramente temos apenas dois caminhos (Sim/Não). No nosso Jogo da Adivinhação, se o jogador erra, queremos dar uma pista: o chute foi maior ou menor que o número secreto?

A lógica seria:

  1. Se acertou: “Parabéns!”
  2. Senão, se chute > secreto: “Chutou alto!”
  3. Senão: “Chutou baixo!”

💻 Mão na Massa

Passo 1: O Problema dos IFs Aninhados

Sem o elif, o código fica “escadinha” e difícil de ler:

if chute == numero_secreto:
    print("Você acertou!")
else:
    if chute > numero_secreto:
        print("Você errou! O seu chute foi maior que o número secreto.")
    else:
        print("Você errou! O seu chute foi menor que o número secreto.")

Passo 2: Utilizando o ELIF

O elif simplifica essa estrutura, mantendo todas as condições no mesmo nível de indentação:

if chute == numero_secreto:
    print("Você acertou!")
elif chute > numero_secreto:
    print("Você errou! O seu chute foi maior que o número secreto.")
else:
    print("Você errou! O seu chute foi menor que o número secreto.")

Passo 3: Melhorando a Legibilidade (Clean Code)

Podemos extrair as condições para variáveis booleanas com nomes descritivos. Isso torna o código quase uma frase em inglês:

acertou = (chute == numero_secreto)
maior   = (chute > numero_secreto)
menor   = (chute < numero_secreto)
 
if acertou:
    print("Você acertou! 🎉")
elif maior:
    print(f"Você errou! Seu chute {chute} foi MAIOR que o segredo.")
elif menor:
    print(f"Você errou! Seu chute {chute} foi MENOR que o segredo.")

Modernização: match-case (Python 3.10+)

Para casos de múltiplas comparações de valores, o Python introduziu o match-case, similar ao switch de outras linguagens:

match chute:
    case _ if chute == numero_secreto:
        print("Acertou!")
    case _ if chute > numero_secreto:
        print("Muito alto!")
    case _:
        print("Muito baixo!")

✅ Resultado Esperado

O programa agora é inteligente o suficiente para guiar o usuário:

Qual o seu chute?
Você errou! Seu chute 50 foi MAIOR que o segredo.

🚨 Erros Comuns

ErroCausaSolução
elif sem ifTentar começar uma sequência lógica por um elif.Todo elif deve vir após um if inicial.
Esquecer os :Sintaxe básica do Python.Sempre use dois pontos : após if, elif e else.

🔗 Próximo Capítulo

Agora que controlamos o fluxo, vamos criar o loop principal do jogo com o Comando WHILE.


⬅️ Capítulo Anterior | Próximo Capítulo ➡️