Usando else

Aprenda a criar um caminho alternativo quando a condição principal não acontece.

Na lição anterior, nós aprendemos a criar um caminho alternativo para o nosso código caso uma condição fosse verdadeira usando o if. Mas o que acontece se a condição for falsa?

Por exemplo, se o sinal estiver verde, você pode passar. Mas e se não estiver verde? O que você faz? Você para!

Na programação, o else (que significa senão em inglês) funciona como o nosso plano B. Ele define exatamente o que o computador deve fazer se a condição do if não for atendida (ou seja, se ela for falsa).

O caminho alternativo, ou o plano B

Pense no else como uma bifurcação completa na estrada: ou você vai para o caminho A, ou você vai para o caminho B. Você nunca poderá seguir ambos os caminhos ao mesmo tempo!

Veja um exemplo prático:

idade = 16

if idade >= 18:
   print("Você pode entrar na festa!")
else:
   print("Desculpe, você é menor de idade e não pode entrar.")

Como o Python interpreta esse código?

  1. Ele avalia o if: "A idade (16) é maior ou igual a 18?"
  2. Como a resposta é Falsa (False), o Python ignora completamente o primeiro print.
  3. O Python cai diretamente no else e executa o comando dele: exibe "Desculpe, você é menor de idade...".

As regras de sintaxe do else

Assim como o if, o else também tem regras muito importantes para não gerar erros no programa:

1. Mesmo alinhamento vertical

A palavra else deve ser escrita exatamente abaixo da palavra if, ou seja, no mesmo nível de recuo (sem espaços extras no começo da linha).

2. Termina com dois pontos (:)

Você deve colocar dois pontos (:) logo após a palavra else.

3. NUNCA coloque uma condição na linha do else

O else é o caso padrão. Ele significa "se tudo o que está acima der errado, faça isto". Por isso, ele não recebe nenhuma pergunta.

# Correto
else:
   print("Caminho padrão")

# Errado - Causará um SyntaxError!
else idade < 18:
   print("Isso vai dar erro!")

4. Indentação

O código que deve rodar dentro do else também deve estar recuado para a direita (indentado).

# Correto - else no mesmo nível do if
if idade >= 18:
   print("Pode entrar!")
else:
   print("Não pode entrar.")

# Errado - else desalinhado (causará IndentationError)
if idade >= 18:
   print("Pode entrar!")
 else:
   print("Não pode entrar.")

E se eu tiver mais que dois caminhos?

Se você precisar de mais de dois caminhos, existe uma palavra-chave que veremos na proxíma lição, o elif, que permite testar condições intermediárias.

Par ou ímpar?

Vimos em aulas anteriores que o operador % pode ser usado para identificar números pares ou ímpares.

O operador % retorna o resto de uma divisão. Por exemplo:

resto = 3 % 2
print(resto)  # vai mostrar 1

resto = 4 % 2
print(resto)  # essa divisão é exata, vai mostrar 0

Assim:

  • se o resto de um número por 2 é 0, sabemos que ele é par.
  • se o resto de um número por 2 não é 0, sabemos que ele é ímpar.

Agora que já conhecemos o if/else, já podemos escrever um programa para fazer essa verificação:

numero = int(input("Informe um número: "))

resto = numero % 2
if resto == 0:
   print("Número par!")
else:
   print("Número ímpar!")

O que aprendemos nesta lição

Nesta lição, você aprendeu que:

  • O else (senão) define o bloco de código que roda caso a condição do if seja falsa.
  • Em uma estrutura de if/else, apenas um dos dois blocos será executado. Nunca os dois.
  • O else deve estar no mesmo alinhamento vertical do seu if.
  • O else não aceita perguntas ou condições na sua linha declaratória e termina sempre com dois pontos (:).
  • O bloco de código abaixo do else deve obrigatoriamente estar indentado.