if, elif e else em Python: como o código toma decisões
Em Python, o if executa um bloco de código só quando uma condição é verdadeira. O elif testa outra condição se a anterior falhou, e o else cuida de todo o resto. Cada linha de condição termina com dois-pontos, e o bloco que vem depois precisa estar recuado.
A ideia: o programa escolhe um caminho
No dia a dia você decide o tempo todo: "se estiver chovendo, levo guarda-chuva; senão, vou sem". Programas fazem o mesmo. Decisão é um dos três blocos de qualquer programa, ao lado de sequência e repetição (veja como treinar lógica de programação).
Comparações: perguntas que dão verdadeiro ou falso
A condição de um if é uma pergunta. Estes são os operadores de comparação:
| Escrita | Significa |
|---|---|
== | é igual a |
!= | é diferente de |
> e < | maior que e menor que |
>= e <= | maior ou igual e menor ou igual |
print(5 == 5)
print(5 != 3)
print(2 > 7)Resultado:
True
True
False
O resultado de uma comparação é um valor True (verdadeiro) ou False (falso).
if e else
idade = 20
if idade >= 18:
print("maior de idade")
else:
print("menor de idade")Resultado:
maior de idade
Repare nas duas regras de escrita: o dois-pontos no fim do if e do else, e o recuo (quatro espaços) nas linhas de dentro. O else não tem condição: ele pega tudo o que não passou no if.
elif: mais de dois caminhos
Para três ou mais situações, use o elif (junção de "else if", "senão, se"). O Python testa de cima para baixo e executa só o primeiro bloco verdadeiro:
nota = 7.5
if nota >= 7:
print("Aprovado")
elif nota >= 5:
print("Recuperação")
else:
print("Reprovado")Resultado:
Aprovado
Com a nota 7.5, a primeira condição já é verdadeira, então o resto é ignorado. Você pode ter quantos elif precisar.
Combinando condições com and, or e not
and: as duas precisam ser verdadeiras.or: basta uma ser verdadeira.not: inverte o resultado.
idade = 20
tem_carteira = True
if idade >= 18 and tem_carteira:
print("Pode dirigir")
else:
print("Não pode dirigir")Resultado:
Pode dirigir
Erros comuns
- Usar
=no lugar de==. Um sinal guarda um valor, dois comparam. - Esquecer o dois-pontos, o que gera
SyntaxError. - Esquecer o recuo, o que gera
IndentationError. Veja como ler uma mensagem de erro em Python. - Ordem errada nos elif. Se você testar
nota >= 5antes denota >= 7, o 7.5 cairia em "Recuperação".
Classifique três notas
Rode o código e confira cada resultado. Depois troque as notas da lista e preveja a saída antes de executar.
for nota in [9, 6, 3]:
if nota >= 7:
print(nota, "Aprovado")
elif nota >= 5:
print(nota, "Recuperação")
else:
print(nota, "Reprovado")
Resultado esperado:
9 Aprovado
6 Recuperação
3 Reprovado
O for pega uma nota por vez, e o if, o elif e o else escolhem o caminho certo para cada uma.
Perguntas frequentes
Qual a diferença entre = e == em Python?
O = guarda um valor em uma variável. O == compara dois valores e responde verdadeiro ou falso.
Posso ter vários elif?
Pode ter quantos precisar. O Python executa só o primeiro bloco cuja condição for verdadeira.
Posso colocar um if dentro de outro?
Pode. Isso se chama if aninhado, e cada nível ganha mais um recuo.
O else é obrigatório?
Não. Ele é opcional e serve para o caso em que nenhuma condição anterior foi verdadeira.
Fontes e para saber mais
Apoie o EasyCode 💜
O EasyCode é gratuito, independente e sem anúncios. Manter a plataforma rápida, com compiladores no navegador e novos conteúdos atualizados tem custos reais todo mês. Se o site está te ajudando a aprender, veja como apoiar o projeto para continuarmos sempre no ar e acessíveis para todos.
Próximo passo da trilhaLoop em Python: como usar for e while, com exemplos para iniciantes