Módulo 7 - Condições com if, elif e else
Usando o else: o caminho alternativo
9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026
O que você vai aprender
- Escrever uma bifurcação if/else completa.
- Garantir que exatamente um dos dois caminhos sempre executa.
- Entender por que o else nunca leva condição.
- Corrigir o erro clássico de escrever else com comparação.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Usando o else: o caminho alternativo.
Os objetivos desta aula. Escrever uma bifurcação if/else completa. Garantir que exatamente um dos dois caminhos sempre executa. Entender por que o else nunca leva condição. Corrigir o erro clássico de escrever else com comparação.
Veja o essencial, parte por parte.
A bifurcação completa: um caminho para cada resposta. O else define o que acontece quando a condição do if é False: é o caminho do SENÃO.
O else não tem condição, e isso é proposital. else idade < 18: gera SyntaxError. Correção: else: sem nada no meio.
Lendo if/else em código de verdade. Para fechar, um exemplo com cara de programa real: o conferidor de senha.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
A bifurcação completa: um caminho para cada resposta
Na aula passada, o programa da portaria tinha um comportamento estranho: quando a idade era menor que 18, ele ficava mudo. Decidiu certo, mas não avisou nada a quem ficou de fora. Programa educado responde nos dois casos, e é para isso que existe o else. Ele cria o segundo braço da bifurcação: um bloco que executa exatamente quando a condição do if é False.
idade = 15
if idade >= 18:
print("Entrada liberada.")
else:
print("Entrada não permitida para menores de 18.")
# Saída:
# Entrada não permitida para menores de 18.A bifurcação completa. Com idade 15, a condição é False e o caminho do else responde.
Repare na geometria do código, porque ela carrega significado. O else fica na mesma coluna do if, colado na margem esquerda, mostrando que os dois formam uma única estrutura. Ele também termina em dois pontos e também comanda um bloco indentado de 4 espaços. Rode o exemplo com 15 e depois com 20: você vai ver uma mensagem de cada vez, nunca as duas juntas. Essa exclusividade é a assinatura do if/else.
if sozinho
- Decide entre fazer e não fazer
- Quando a condição é False, nada acontece
- Bom para ações extras e opcionais
- Exemplo: dar parabéns só para nota alta
if com else
- Decide entre dois caminhos que se excluem
- Sempre executa exatamente um dos blocos
- Bom quando toda entrada merece resposta
- Exemplo: liberar OU negar a entrada
O else não tem condição, e isso é proposital
Agora o erro que quase todo iniciante comete uma vez. A lógica da portaria parece pedir duas condições: SE idade >= 18, libere; SE idade < 18, negue. Daí a tentação de escrever a segunda no else. O Python recusa na hora, e por um bom motivo: o else significa em todos os outros casos. Ele já é, por definição, o oposto exato da condição do if. Escrever condição nele seria redundante e abriria espaço para contradições.
idade = 15
if idade >= 18:
print("Entrada liberada.")
else idade < 18: # SyntaxError: invalid syntax
print("Entrada não permitida.")
# O else nunca leva condição: ele já significa
# "em todos os casos em que o if deu False".O erro clássico. A condição depois do else quebra o programa antes mesmo de rodar.
Pense no else como a palavra senão do português. Você diz: se estiver chovendo, vou de carro; senão, vou a pé. Ninguém diz: senão não estiver chovendo, vou a pé. O senão já carrega o contrário embutido. A correção do código acima é só apagar a comparação e deixar else com os dois pontos, nada mais. Quando você realmente precisar testar uma segunda condição diferente, a ferramenta certa é o elif, assunto da próxima aula.
Lendo if/else em código de verdade
Para fechar, um exemplo com cara de programa real: o conferidor de senha. Ele compara o que o usuário digitou com a senha esperada e responde nos dois casos. Leia primeiro, preveja a saída e só depois rode no laboratório trocando o valor de digitada.
senha_correta = "abacaxi42"
digitada = "abacaxi41"
if digitada == senha_correta:
print("Acesso liberado. Bem-vindo!")
else:
print("Senha incorreta. Tente novamente.")
# Saída:
# Senha incorreta. Tente novamente.Bifurcação com strings: a comparação com == funciona para textos do mesmo jeito que para números.
Dois detalhes valem registro. Primeiro, o == compara textos com o mesmo rigor que compara números: abacaxi41 e abacaxi42 diferem em um caractere e isso basta para o False. Segundo, o programa inteiro tem um único destino garantido: alguma mensagem sempre aparece. É essa previsibilidade que faz o if/else ser a estrutura preferida para validações. Na prática do fim do módulo, você vai usar exatamente esse padrão para responder sobre voto e CNH.
Teste rápido
Por que a linha "else idade < 18:" gera erro em Python?
Perguntas frequentes
- O else é obrigatório em todo if?
- Não. O if funciona sozinho quando a ausência de ação já é a resposta certa, como dar parabéns só para quem gabaritou. Use else quando os dois resultados merecem resposta, como liberar ou negar um acesso. A escolha é de design, não de sintaxe.
- Pode existir else sem if?
- Não. O else é a segunda metade de uma estrutura que começa no if; sozinho, ele gera SyntaxError. O Python precisa saber de qual condição aquele senão é o contrário, e essa informação vem do if imediatamente acima, na mesma coluna.
- Um if pode ter dois else?
- Não, no máximo um else por if, sempre no final da estrutura. Se a sua lógica parece pedir dois else, é sinal de que existem três ou mais caminhos, e aí a peça que falta é o elif, apresentado na próxima aula.
- O bloco do else pode ter várias linhas?
- Pode, como qualquer bloco: todas as linhas com a mesma indentação de 4 espaços pertencem a ele. O bloco termina na primeira linha que volta para a margem esquerda, exatamente como no if.
- Existe diferença de desempenho entre usar if sozinho e if/else?
- Nenhuma que importe. O Python avalia a condição uma vez e segue por um dos caminhos; ter ou não ter else não muda o custo de forma perceptível. A escolha entre as duas formas deve ser guiada pela clareza da lógica, nunca por micro-otimização.
- Como escolho o que vai no if e o que vai no else?
- Uma convenção útil: coloque no if o caso que dá nome à pergunta, de preferência o afirmativo. Para pode entrar?, teste idade >= 18 no if e deixe a negativa no else. Condições afirmativas se leem melhor, e o guia de estilo do Python recomenda evitar negações desnecessárias.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.