Condicionais permitem executar diferentes blocos conforme condições.
Eles usam as palavras-chave if, elif e else.
Primeiramente, o if testa uma condição booleana.
Por exemplo, if idade >= 18: print("Maior de idade").
Além disso, elif testa condições adicionais.
A voz passiva é usada aqui: “a decisão é tomada baseada na condição”.
Quando utilizar condicionais? Em praticamente todo programa.
Também para validações, regras de negócio e fluxos alternativos.
Python usa indentação para definir blocos condicionais.
Vamos explorar sintaxe, operadores e exemplos práticos.
Três subtítulos guiarão você pelas condicionais.
Ao final, você controlará o fluxo do seu código.
Sintaxe básica: if, elif e else
A estrutura condicional começa com if e uma condição.
Depois, você pode adicionar quantos elif quiser.
O else final é opcional e captura os outros casos.
Quando usar elif? Para múltiplas condições exclusivas.
A voz passiva é aplicada: “a indentação é usada para delimitar blocos”.
Exemplo de sintaxe básica:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# Condicional simples idade = 18 if idade >= 18: print("Você é maior de idade") else: print("Você é menor de idade") # Múltiplas condições com elif nota = 85 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"Nota {nota} -> Conceito {conceito}") # Condição sem else temperatura = 30 if temperatura > 25: print("Está calor hoje!") # Condições aninhadas idade = 20 possui_carteira = True if idade >= 18: if possui_carteira: print("Pode dirigir") else: print("Tem idade mas não tem carteira") else: print("Não pode dirigir (menor de idade)") |
Condicionais são a base da lógica de programação. Eles permitem que o programa reaja a diferentes situações.
Operadores e condições complexas
Python oferece operadores de comparação e lógicos.
== igual, != diferente, > maior.
< menor, >= maior ou igual, <= menor ou igual.
Operadores lógicos: and, or, not.
Quando usar condições complexas? Em validações múltiplas.
A voz passiva é aplicada: “as expressões são avaliadas em ordem”.
Exemplo de operadores:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# Operadores de comparação a = 10 b = 20 print(f"a == b: {a == b}") print(f"a != b: {a != b}") print(f"a > b: {a > b}") print(f"a < b: {a < b}") # Operador and (ambas verdadeiras) idade = 25 possui_convite = True if idade >= 18 and possui_convite: print("Pode entrar na festa") else: print("Não pode entrar") # Operador or (pelo menos uma verdadeira) dia_semana = "sabado" eh_fim_de_semana = dia_semana == "sabado" or dia_semana == "domingo" print(f"É fim de semana? {eh_fim_de_semana}") # Operador not (inverte a condição) logado = False if not logado: print("Usuário não está logado") # Combinando operadores usuario = "admin" senha = "12345" if usuario == "admin" and senha == "12345": print("Login bem-sucedido") elif usuario == "admin" and senha != "12345": print("Senha incorreta") else: print("Usuário não encontrado") # Condicional com in (pertencimento) frutas = ["maçã", "banana", "laranja"] fruta = "banana" if fruta in frutas: print(f"{fruta} está na lista!") |
Condições complexas permitem expressar regras elaboradas. Use parênteses para agrupar quando necessário.
Expressões condicionais e boas práticas
Python tem o operador ternário valor_se_verdadeiro if condicao else valor_se_falso.
Ele é útil para atribuições simples em uma linha.
Quando usar ternário? Para substituir if-else simples.
Evite aninhar ternários, pois prejudica a legibilidade.
A voz passiva é aplicada: “a expressão é avaliada como um todo”.
Exemplo de expressões condicionais:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# Operador ternário (if em uma linha) idade = 20 status = "Maior" if idade >= 18 else "Menor" print(f"Status: {status}") # Exemplo prático com ternário nota = 75 resultado = "Aprovado" if nota >= 60 else "Reprovado" print(f"Nota {nota}: {resultado}") # Ternário com cálculo desconto = 0.1 if valor_compra > 100 else 0.05 # (assumindo valor_compra definido anteriormente) # Evite ternários aninhados (ruim) # resultado = "A" if nota >= 90 else "B" if nota >= 80 else "C" if nota >= 70 else "F" # Prefira if-elif-else para múltiplas condições def classificar_nota(nota): if nota >= 90: return "A" elif nota >= 80: return "B" elif nota >= 70: return "C" elif nota >= 60: return "D" else: return "F" print(f"Classificação: {classificar_nota(85)}") # Validação de entrada com condicionais def validar_idade(valor): if not isinstance(valor, int): return "Erro: Idade deve ser número inteiro" if valor < 0: return "Erro: Idade não pode ser negativa" if valor > 150: return "Erro: Idade muito alta" return f"Idade válida: {valor}" print(validar_idade(25)) print(validar_idade(-5)) print(validar_idade(200)) # Switch-case simulado com dicionário (Python 3.10+) def dia_da_semana(numero): dias = { 1: "Domingo", 2: "Segunda", 3: "Terça", 4: "Quarta", 5: "Quinta", 6: "Sexta", 7: "Sábado" } return dias.get(numero, "Dia inválido") print(f"dia_da_semana(3): {dia_da_semana(3)}") print(f"dia_da_semana(8): {dia_da_semana(8)}") # Exemplo de jogo simples import random print("\n=== Jogo de Adivinhação ===") secreto = random.randint(1, 10) palpite = 5 # Simulado if palpite == secreto: print("Parabéns! Você acertou!") elif palpite < secreto: print(f"Palpite {palpite} é menor que o número secreto") else: print(f"Palpite {palpite} é maior que o número secreto") |
Condicionais são ferramentas essenciais no dia a dia.
A fórmula de uma condicional pode ser expressa:
\(C = \begin{cases} \text{bloco}_1 & \text{se } P_1 \\ \text{bloco}_2 & \text{se } P_2 \\ \text{bloco}_3 & \text{caso contrário} \end{cases}\)
Use if para decisões simples.
Use if-elif-else para múltiplas alternativas.
Mantenha as condições claras e evite aninhamento excessivo.
Seu código será mais legível e fácil de manter.