Condicionais
Nesta aula, você aprenderá a controlar o fluxo de execução do seu programa Python usando estruturas condicionais if/elif/else, expressões ternárias e aninhamento. Além disso, serão apresentadas boas práticas para escrever código claro e eficiente.
Estruturas condicionais são fundamentais em qualquer linguagem de programação, pois permitem que seu programa tome decisões baseadas em condições lógicas. Em Python, utilizamos as palavras-chave if, elif e else para criar ramos de execução. Nesta aula, exploraremos desde o básico até técnicas mais avançadas, incluindo o operador ternário e o aninhamento de condicionais, sempre com foco em boas práticas.
Dominar condicionais é essencial para escrever programas que respondam a diferentes entradas e situações. Vamos começar!
if/elif/else
A estrutura condicional mais básica em Python é o if. Ele avalia uma expressão booleana e, se for verdadeira, executa o bloco de código indentado abaixo dele. Você pode adicionar um else para executar um bloco alternativo quando a condição for falsa. Para múltiplas condições, use elif (abreviação de "else if").
Exemplo prático: determinar a faixa etária de uma pessoa.
idade = 25
if idade < 18:
print("Menor de idade")
elif idade < 60:
print("Adulto")
else:
print("Idoso")Note que as condições são avaliadas em ordem. A primeira condição verdadeira executa seu bloco e o restante é ignorado. Se nenhuma condição for verdadeira, o bloco else é executado (se presente).
Expressões condicionais (ternário)
Python oferece uma forma concisa de escrever condicionais simples em uma única linha: a expressão ternária. Sua sintaxe é: valor_se_verdadeiro if condicao else valor_se_falso. Isso é útil para atribuições rápidas ou para retornar valores.
Exemplo: converter uma nota em conceito.
nota = 85
conceito = "Aprovado" if nota >= 60 else "Reprovado"
print(conceito) # AprovadoEmbora prática, evite aninhar ternários, pois isso prejudica a legibilidade. Prefira um if tradicional para condições complexas.
Aninhamento
Você pode colocar uma estrutura condicional dentro de outra. Isso é chamado de aninhamento. Embora seja possível, é importante não exagerar para não tornar o código difícil de ler. Em muitos casos, usar elif ou combinar condições com operadores lógicos (and, or) pode ser mais claro.
Exemplo: verificar se um número é positivo, negativo ou zero.
numero = -5
if numero >= 0:
if numero == 0:
print("Zero")
else:
print("Positivo")
else:
print("Negativo")Aqui, aninhamos um if dentro de outro. Poderíamos reescrever usando elif para evitar aninhamento desnecessário.
Boas práticas
Ao escrever condicionais, siga estas recomendações:
- Evite aninhamento profundo: mais de 3 níveis de indentação indicam que você pode simplificar a lógica.
- Use nomes descritivos para variáveis: condições como
if usuario_autenticadosão mais legíveis queif x == 1. - Prefira
elifa múltiplosifs: quando as condições são mutuamente exclusivas,elifdeixa claro que apenas um bloco será executado. - Evite condições negativas:
if not erradopode ser substituído porif corretose possível. - Use parênteses para agrupar condições complexas: melhora a legibilidade e evita ambiguidades.
- Considere dicionários ou polimorfismo: para muitas condições, estruturas de dados podem substituir longas cadeias de
if/elif.
Exemplo de código com boas práticas:
def classificar_numero(n):
if n > 0:
return "positivo"
elif n < 0:
return "negativo"
else:
return "zero"Referências
- Documentação oficial: Controle de Fluxo
- Real Python: Conditional Statements
- W3Schools: Python Conditions
- PEP 8 – Guia de Estilo para Código Python
- Expressões Condicionais (Ternário) na Documentação
Exercícios
Escreva um programa que receba um número do usuário e informe se ele é par ou ímpar.
✓ Resposta:numero = int(input("Digite um número: ")) if numero % 2 == 0: print("Par") else: print("Ímpar")Crie uma função que receba três números e retorne o maior deles.
✓ Resposta:def maior(a, b, c): if a >= b and a >= c: return a elif b >= a and b >= c: return b else: return c print(maior(10, 5, 8)) # 10Use uma expressão ternária para converter uma temperatura em Celsius para a mensagem "Quente" se >= 30, senão "Frio".
✓ Resposta:celsius = 32 mensagem = "Quente" if celsius >= 30 else "Frio" print(mensagem) # QuenteReescreva o código abaixo evitando aninhamento desnecessário:
if x > 0: if y > 0: print("Ambos positivos") else: print("x positivo, y não") else: print("x não é positivo")✓ Resposta:if x > 0 and y > 0: print("Ambos positivos") elif x > 0: print("x positivo, y não") else: print("x não é positivo")Implemente um sistema de desconto: se o valor da compra for maior que R$ 100, aplique 10% de desconto; se for maior que R$ 200, aplique 20%; caso contrário, sem desconto. Use
if/elif/else.✓ Resposta:valor = float(input("Digite o valor da compra: ")) if valor > 200: desconto = 0.2 elif valor > 100: desconto = 0.1 else: desconto = 0.0 valor_final = valor * (1 - desconto) print(f"Valor final: R$ {valor_final:.2f}")