Programação · Ensino médio · aula 4 de 7 · ~2 min de leitura
Condições em Python: if, elif e else
Como fazer o programa escolher um caminho, e por que o recuo do texto faz parte da linguagem.
Esta aula ainda aguarda revisão da comunidade. Achou um erro? Sugira uma correção.
Se… então…
Na trilha de lógica você viu a estrutura "se… então… senão…". Em Python ela se escreve com if e else:
idade = 17
if idade >= 16:
print("Pode votar.")
else:
print("Ainda não pode votar.")
Três detalhes que não podem faltar:
- depois da condição vêm dois-pontos;
- as linhas que pertencem ao
ifficam recuadas (quatro espaços é o costume); - o
elsevolta para a margem e também termina com dois-pontos.
O recuo é parte da linguagem
Em muitas linguagens o recuo é só capricho. Em Python, não: é ele que diz onde o bloco começa e termina.
saldo = 30
if saldo < 50:
print("Saldo baixo.")
print("Evite gastos.")
print("Fim da consulta.")
As duas linhas recuadas só são executadas se a condição for verdadeira. A última, na margem, é executada sempre. Troque o saldo para 80 e veja.
No exemplo acima, com saldo = 80, o que aparece na tela?
Mais de dois caminhos: elif
elif é a abreviação de "else if" ("senão, se"). O Python testa as condições de cima para baixo e executa apenas o primeiro bloco verdadeiro:
nota = float(input("Nota: "))
if nota >= 9:
print("Excelente")
elif nota >= 6:
print("Aprovado")
elif nota >= 4:
print("Recuperação")
else:
print("Reprovado")
A ordem importa. Se o teste nota >= 6 viesse primeiro, uma nota 9,5 cairia nele e nunca chegaria ao "Excelente".
Condições compostas
Use and, or e not, vistos na aula anterior:
idade = int(input("Idade: "))
if idade >= 18 and idade <= 70:
print("Voto obrigatório.")
elif idade >= 16:
print("Voto facultativo.")
else:
print("Ainda não vota.")
(No Brasil, o voto é obrigatório dos 18 aos 70 anos e facultativo para quem tem 16 ou 17 anos ou mais de 70.)
Um if dentro do outro
tem_ingresso = True
idade = 15
if tem_ingresso:
if idade >= 14:
print("Pode entrar.")
else:
print("Só com responsável.")
else:
print("Compre o ingresso primeiro.")
Cada nível ganha mais quatro espaços. Se os níveis passarem de três, o código fica difícil de ler: é sinal de que vale reorganizar.
Para praticar
- Peça um número e diga se ele é par ou ímpar.
- Peça dois números e mostre o maior (ou avise que são iguais).
- Peça o valor de uma compra: acima de R$ 200, dê 10% de desconto; acima de R$ 100, 5%; abaixo disso, nenhum. Mostre o valor final.
Teste o que você aprendeu
1. Em Python, como o computador sabe quais linhas pertencem ao if?
2. Em uma sequência if / elif / elif / else, quantos blocos são executados?
3. O que falta nesta linha: if nota >= 6
Fontes desta aula
- Python Software Foundation. O tutorial de Python: mais ferramentas de controle de fluxo.
- Allen B. Downey. Pense em Python (2ª edição) (2016).