As estruturas condicionais são fundamentais em qualquer linguagem de programação. Elas permitem que seu código tome decisões e execute diferentes ações dependendo de condições específicas. Neste guia completo, você vai dominar o uso de if, elif e else em Python.

🎯 O Que São Estruturas Condicionais?

Imagine que você está programando um sistema de login. O programa precisa verificar se a senha está correta antes de permitir o acesso. Isso é uma decisão que o código precisa tomar, e é exatamente para isso que servem as estruturas condicionais.

Em Python, usamos três palavras-chave principais:

  • if significa "se" e inicia a verificação
  • elif significa "senão se" e adiciona condições alternativas
  • else significa "senão" e executa quando nenhuma condição anterior foi verdadeira

📝 Sintaxe Básica do if

A estrutura mais simples usa apenas o if:

idade = 18

if idade >= 18:
    print("Você é maior de idade")

Observe que:

  • A condição vem após o if e antes dos dois pontos
  • O código que será executado fica indentado (4 espaços)
  • A indentação é obrigatória em Python

🔀 Usando if e else

Quando você precisa executar algo caso a condição seja falsa, use o else:

temperatura = 25

if temperatura > 30:
    print("Está muito quente!")
else:
    print("A temperatura está agradável")

Neste exemplo, como 25 não é maior que 30, o programa executa o bloco do else.

🔄 Usando if, elif e else

Quando você tem múltiplas condições para verificar, use o elif:

nota = 75

if nota >= 90:
    print("Conceito A")
elif nota >= 80:
    print("Conceito B")
elif nota >= 70:
    print("Conceito C")
elif nota >= 60:
    print("Conceito D")
else:
    print("Conceito F")

O Python verifica cada condição na ordem. Quando encontra uma verdadeira, executa aquele bloco e ignora os demais. Se nenhuma for verdadeira, executa o else.

⚡ Operadores de Comparação

Para criar condições, você precisa conhecer os operadores de comparação:

# Operadores de comparação
x == y   # Igual a
x != y   # Diferente de
x > y    # Maior que
x < y    # Menor que
x >= y   # Maior ou igual a
x <= y   # Menor ou igual a

Exemplos práticos:

numero = 10

if numero == 10:
    print("O número é exatamente 10")

if numero != 5:
    print("O número não é 5")

if numero > 5:
    print("O número é maior que 5")

🔗 Operadores Lógicos: and, or, not

Você pode combinar múltiplas condições usando operadores lógicos:

Operador and (e)

Ambas as condições precisam ser verdadeiras:

idade = 25
tem_carteira = True

if idade >= 18 and tem_carteira:
    print("Pode dirigir")

Operador or (ou)

Pelo menos uma condição precisa ser verdadeira:

is_admin = False
is_moderator = True

if is_admin or is_moderator:
    print("Acesso liberado ao painel")

Operador not (não)

Inverte o valor booleano:

logado = False

if not logado:
    print("Faça login para continuar")

📦 Condicionais Aninhadas

Você pode colocar um if dentro de outro:

usuario = "admin"
senha = "12345"

if usuario == "admin":
    if senha == "12345":
        print("Bem-vindo, administrador!")
    else:
        print("Senha incorreta")
else:
    print("Usuário não encontrado")

Porém, evite aninhar muitos níveis. Código com muitas indentações fica difícil de ler.

✨ Operador Ternário (Condicional em Uma Linha)

Python permite escrever condicionais simples em uma única linha:

# Sintaxe: valor_se_verdadeiro if condição else valor_se_falso

idade = 20
status = "maior" if idade >= 18 else "menor"
print(status)  # maior

# Outro exemplo
numero = 7
tipo = "par" if numero % 2 == 0 else "ímpar"
print(tipo)  # ímpar

Use o operador ternário apenas para expressões simples. Para lógica complexa, prefira a estrutura tradicional.

🎮 Projeto Prático: Jogo de Adivinhar o Número

Vamos aplicar tudo que aprendemos em um projeto prático:

import random

# Gera número aleatório entre 1 e 10
numero_secreto = random.randint(1, 10)

# Recebe o palpite do usuário
palpite = int(input("Adivinhe o número (1-10): "))

# Verifica o resultado
if palpite == numero_secreto:
    print("🎉 Parabéns! Você acertou!")
elif palpite < numero_secreto:
    print(f"📈 O número era maior. Era {numero_secreto}")
else:
    print(f"📉 O número era menor. Era {numero_secreto}")

💡 Dicas e Boas Práticas

1. Evite Comparações Redundantes

# ❌ Desnecessário
if logado == True:
    print("Bem-vindo")

# ✅ Correto
if logado:
    print("Bem-vindo")

2. Use Parênteses para Clareza

# Mais legível com parênteses
if (idade >= 18) and (tem_carteira or tem_permissao):
    print("Pode dirigir")

3. Prefira Condições Positivas

# ❌ Confuso
if not is_invalid:
    process()

# ✅ Mais claro
if is_valid:
    process()

4. Use Early Return para Reduzir Aninhamento

def processar_pedido(pedido):
    if not pedido:
        return "Pedido inválido"
    
    if not pedido.pago:
        return "Pagamento pendente"
    
    # Código principal aqui
    return "Pedido processado"

❌ Erros Comuns para Evitar

1. Esquecer os Dois Pontos

# ❌ Erro de sintaxe
if idade >= 18
    print("Maior")

# ✅ Correto
if idade >= 18:
    print("Maior")

2. Indentação Incorreta

# ❌ IndentationError
if idade >= 18:
print("Maior")

# ✅ Correto
if idade >= 18:
    print("Maior")

3. Usar = em vez de ==

# ❌ Erro (atribuição, não comparação)
if idade = 18:

# ✅ Correto (comparação)
if idade == 18:

🚀 Próximos Passos

Agora que você domina as estruturas condicionais, está pronto para aprender sobre loops em Python, que permitem repetir código múltiplas vezes. Também recomendo revisar o conteúdo sobre variáveis e tipos de dados se ainda tiver dúvidas sobre operadores.

Para um aprendizado mais estruturado, confira nosso guia completo de Python para iniciantes ou explore nosso curso do zero ao avançado.

Pratique bastante! A melhor forma de aprender é escrevendo código.