⬅ Voltar ao Dashboard Capítulo 4 — Condições

⚡ A Cláusula elif

Seção 4.4 — Simplificando condições aninhadas

🔄 elif: a solução elegante

Python apresenta uma solução muito interessante ao problema de múltiplos ifs aninhados. A cláusula elif substitui um par else/if, sem criar outro nível de estrutura, evitando o deslocamento excessivo para a direita.

Veja o mesmo programa de categorias da aula anterior, agora reescrito com elif:

Listagem 4.8 — Categoria x preço com elifcategoria = int(input("Digite a categoria do produto: ")) if categoria == 1: preço = 10 elif categoria == 2: preço = 18 elif categoria == 3: preço = 23 elif categoria == 4: preço = 26 elif categoria == 5: preço = 31 else: print("Categoria inválida, digite um valor entre 1 e 5!") preço = 0 print("O preço do produto é: R$%6.2f" % preço)

Compare com a Listagem 4.7: o resultado é idêntico, mas o código é muito mais legível. Todos os elifs ficam no mesmo nível do if inicial, sem deslocamentos adicionais.

💡 O elif é uma abreviatura de else if. Em uma cadeia if / elif / elif / else, apenas o primeiro bloco cuja condição for verdadeira será executado; os demais são ignorados.

✏ Exercícios

Exercício 4.8

Escreva um programa que leia dois números e pergunte qual operação o usuário deseja realizar: soma (+), subtração (-), multiplicação (*) ou divisão (/). Exiba o resultado da operação solicitada.

Exercício 4.9

Escreva um programa para aprovar o empréstimo bancário para a compra de uma casa. O programa deve perguntar o valor da casa a comprar, o salário e a quantidade de anos a pagar. O valor da prestação mensal não pode ser superior a 30% do salário. Calcule o valor da prestação como sendo o valor da casa dividido pelo número de meses a pagar.

Exercício 4.10

Escreva um programa que calcule o preço a pagar pelo fornecimento de energia elétrica. Pergunte a quantidade de kWh consumida e o tipo de instalação: R para residências, I para indústrias e C para comércios. Calcule o preço de acordo com a tabela:

TipoFaixa (kWh)Preço
ResidencialAté 500R$ 0,40
ResidencialAcima de 500R$ 0,65
ComercialAté 1000R$ 0,55
ComercialAcima de 1000R$ 0,60
IndustrialAcima de 5000R$ 0,60