Vídeo em breve
Por enquanto, esta aula está disponível só em texto — o vídeo entra assim que ficar pronto.
Estruturas de controle
Condicionais: if, elif e else
Como fazer o programa tomar decisões com base em condições, e os operadores de comparação e lógicos. · 15 min
Até agora, nossos programas executam de cima para baixo, sem escolhas. A partir desta aula, eles passam a decidir o que fazer com base em condições — é aqui que a “lógica” da lógica de programação entra de vez.
O básico: if / else
idade = int(input("Sua idade: "))
if idade >= 18:
print("Você pode dirigir.")
else:
print("Ainda não pode dirigir.")
Repare na indentação: Python usa espaços (não {}) para marcar o que
pertence a cada bloco.
Atenção
Misturar tabs e espaços na indentação causa erro em Python. Configure seu editor para sempre usar espaços (4, por convenção).
Vários caminhos com elif
nota = float(input("Sua nota: "))
if nota >= 9:
conceito = "A"
elif nota >= 7:
conceito = "B"
elif nota >= 5:
conceito = "C"
else:
conceito = "D"
print(f"Conceito: {conceito}")
Operadores de comparação e lógicos
| Comparação | Significado | Lógico | Significado | |
|---|---|---|---|---|
== |
igual | and |
e | |
!= |
diferente | or |
ou | |
>, < |
maior, menor | not |
negação | |
>=, <= |
maior/menor ou igual |
idade = 20
tem_carteira = True
if idade >= 18 and tem_carteira:
print("Pode dirigir.")
Dica
Lembrete da aula de operadores: = atribui, == compara. Dentro de um
if, você sempre quer == (if idade == 18:) — usar = por engano
nem roda, o Python acusa erro de sintaxe.
and e or são “preguiçosos” (short-circuit): param de avaliar assim
que já sabem a resposta. Em a and b, se a já é False, Python nem
olha para b — o resultado já é False de qualquer jeito.
if dentro de if (condicionais aninhadas)
Você também pode colocar um if dentro de outro, quando a segunda decisão
só faz sentido depois da primeira:
idade = int(input("Idade: "))
if idade >= 18:
tem_carteira = input("Tem carteira? (s/n): ")
if tem_carteira == "s":
print("Pode dirigir.")
else:
print("Precisa tirar a carteira primeiro.")
else:
print("Ainda não tem idade para dirigir.")
Dica
if idade >= 18 and tem_carteira == "s": (uma condição só, com and)
resolveria esse mesmo caso sem aninhar. Prefira isso quando der — é mais
fácil de ler do que vários níveis de if dentro de if.
Exercícios
Exercício
1. Aquecimento. Escreva um programa que classifica um número digitado
como “positivo”, “negativo” ou “zero”, usando if/elif/else.
Exercício
2. Combinando condições. Peça idade e se a pessoa tem carteira de
motorista (True/False). Imprima “Pode dirigir” só se tiver 18+ e
carteira; senão, imprima um motivo específico (“Idade insuficiente”,
“Sem carteira” ou “Idade insuficiente e sem carteira”).
Exercício
3. Desafio. Escreva uma calculadora de conceito por faixa de nota
(como no exemplo de elif acima), mas rejeitando entradas inválidas: se
a nota digitada for menor que 0 ou maior que 10, imprima “Nota
inválida” em vez de calcular um conceito.