Condicionais: if, elif e else com exemplos reais

1. Estrutura Básica do if

A estrutura condicional mais fundamental em Python é o if. Sua sintaxe é simples: escrevemos if seguido de uma condição, dois pontos (:) e, na linha seguinte, o bloco de código indentado que será executado apenas se a condição for verdadeira.

numero = 10

if numero > 0:
    print("O número é positivo")

A indentação é obrigatória em Python. Ela define qual código pertence ao bloco do if. Sem ela, o interpretador retornará um erro de sintaxe.

# Exemplo prático: verificar se um número é positivo
temperatura = -5

if temperatura > 0:
    print("Temperatura acima de zero")

Neste caso, nada será impresso, pois a condição temperatura > 0 é falsa.

2. Adicionando o else para Alternativas

Quando precisamos executar um bloco de código caso a condição do if seja falsa, utilizamos o else. Essa estrutura oferece duas rotas possíveis: uma para o caso verdadeiro e outra para o caso contrário.

# Exemplo real: validação de senha simples
senha_cadastrada = "python123"
senha_digitada = input("Digite sua senha: ")

if senha_digitada == senha_cadastrada:
    print("Acesso permitido")
else:
    print("Senha incorreta")

O else captura automaticamente todos os casos em que a condição do if não é satisfeita, funcionando como um "caso contrário" genérico.

3. Cadeias de Decisão com elif

Para situações com múltiplas condições exclusivas, utilizamos o elif (contração de "else if"). O Python avalia as condições em ordem, executando apenas o primeiro bloco cuja condição for verdadeira.

# Exemplo real: classificação de notas escolares
nota = float(input("Digite a nota do aluno (0 a 100): "))

if nota >= 90:
    conceito = "A"
elif nota >= 80:
    conceito = "B"
elif nota >= 70:
    conceito = "C"
elif nota >= 60:
    conceito = "D"
else:
    conceito = "F"

print(f"Conceito: {conceito}")

A ordem das condições é importante: devemos sempre ir do mais específico ao mais genérico. Se invertêssemos a ordem, colocando nota >= 60 primeiro, todos os alunos com nota acima de 60 receberiam conceito "D", ignorando as faixas superiores.

4. Condicionais Aninhadas (Nested if)

Condicionais aninhadas ocorrem quando colocamos um if dentro de outro if. Essa técnica é útil para decisões hierárquicas, onde uma condição depende do resultado de outra.

# Exemplo real: sistema de login com verificação de usuário e depois senha
usuario_cadastrado = "admin"
senha_cadastrada = "1234"

usuario = input("Usuário: ")

if usuario == usuario_cadastrado:
    senha = input("Senha: ")
    if senha == senha_cadastrada:
        print("Login bem-sucedido")
    else:
        print("Senha incorreta")
else:
    print("Usuário não encontrado")

Embora úteis, evite aninhamentos muito profundos (mais de 3 níveis), pois prejudicam a legibilidade. Nesses casos, considere refatorar o código usando funções ou operadores lógicos.

5. Operadores de Comparação e Lógicos em Condicionais

Python oferece operadores de comparação (==, !=, >, <, >=, <=) e operadores lógicos (and, or, not) que podem ser combinados para criar condições mais complexas.

O Python utiliza curto-circuito (short-circuit evaluation): em uma expressão com and, se a primeira condição for falsa, a segunda não é avaliada. Em uma expressão com or, se a primeira for verdadeira, a segunda é ignorada.

# Exemplo real: verificar se um ano é bissexto
ano = int(input("Digite um ano: "))

if (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0):
    print(f"{ano} é bissexto")
else:
    print(f"{ano} não é bissexto")

A regra dos anos bissextos é perfeita para demonstrar combinações lógicas: um ano é bissexto se for divisível por 4 e não for divisível por 100, ou se for divisível por 400.

6. Expressões Condicionais Ternárias

Python oferece uma sintaxe compacta para condicionais simples: o operador ternário. Sua estrutura é valor_se_verdadeiro if condição else valor_se_falso.

# Exemplo real: definir "Maior de idade" ou "Menor de idade"
idade = 18
status = "Maior de idade" if idade >= 18 else "Menor de idade"
print(status)

Use o operador ternário apenas para expressões simples e curtas. Para lógicas mais complexas, prefira o if tradicional, que oferece melhor legibilidade.

# Exemplo de quando EVITAR o ternário (difícil de ler)
resultado = "Aprovado" if nota >= 60 else ("Recuperação" if nota >= 40 else "Reprovado")
# Prefira usar if/elif/else tradicional nesse caso

7. Tratamento de Entrada do Usuário com Condicionais

Combinar input() com condicionais é uma prática comum para criar programas interativos. É importante validar os dados recebidos para evitar erros de execução.

# Exemplo real: calculadora simples com operações
try:
    num1 = float(input("Digite o primeiro número: "))
    operador = input("Digite a operação (+, -, *, /): ")
    num2 = float(input("Digite o segundo número: "))

    if operador == "+":
        resultado = num1 + num2
    elif operador == "-":
        resultado = num1 - num2
    elif operador == "*":
        resultado = num1 * num2
    elif operador == "/":
        if num2 == 0:
            print("Erro: divisão por zero não permitida")
            resultado = None
        else:
            resultado = num1 / num2
    else:
        print("Operação inválida")
        resultado = None

    if resultado is not None:
        print(f"Resultado: {resultado}")

except ValueError:
    print("Erro: digite apenas números válidos")

Neste exemplo, usamos try-except para capturar erros de conversão de tipo e condicionais aninhadas para verificar a divisão por zero, demonstrando como combinar diferentes técnicas de forma robusta.


As estruturas condicionais são a espinha dorsal da lógica de programação em Python. Dominar o if, elif e else, combinados com operadores lógicos e validação de entrada, permite criar programas que tomam decisões inteligentes e respondem adequadamente a diferentes situações. Pratique esses conceitos com exemplos do mundo real para internalizar seu uso.

Referências