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
- Documentação Oficial Python: Controle de Fluxo — Documentação oficial explicando estruturas condicionais e de repetição em Python.
- Real Python: Conditional Statements in Python — Guia completo sobre if, elif e else com exemplos práticos e dicas de boas práticas.
- W3Schools: Python If...Else — Tutorial interativo cobrindo todas as variações de condicionais em Python.
- GeeksforGeeks: Python if-else — Artigo técnico com exemplos detalhados de condicionais, incluindo operadores ternários e aninhamento.
- Programiz: Python if...else Statement — Tutorial visual com fluxogramas e exemplos práticos para iniciantes.
- Python.org: PEP 8 - Style Guide for Python Code — Guia de estilo oficial que inclui recomendações para indentação e formatação de condicionais.