Crie uma tupla com nomes de 5 produtos e seus respectivos preços.
Exiba os produtos formatados com preços alinhados.
Exiba os produtos formatados com preços alinhados.
Passo 1
Beleza, vamos recapitular o que a gente precisa fazer. O exercício tá na parte de Python e pede pra criar uma tupla com 5 produtos (nome + preço) e depois exibir esses produtos com os preços todos alinhadinhos numa coluna. Para isso, vamos precisar:
- Entender o que é tupla em Python;
- Saber como iterar sobre itens de uma tupla com
for
; - Usar f-strings para formatar texto, especialmente os especificadores de largura e casas decimais.
Passo 2
Primeiro, o conceito de tupla: é uma coleção ordenada e imutável de elementos. Aqui cada elemento vai ser um par
(nome, preço)
. Vamos criar uma tupla de exemplo com 5 produtos, tipo:produtos = (
("Maçã", 2.5),
("Banana", 3.0),
("Leite", 4.75),
("Ovos", 0.5),
("Pão", 1.8),
)
Isso já resolve a parte de “criar a tupla com nomes e preços”.
Passo 3
Agora a parte de “alinhamento”. Pra deixar os preços todos na mesma coluna, a gente precisa saber qual é o nome de produto mais longo, porque o preço vai começar sempre depois desse nome. Então:
- Extrair só os nomes da tupla;
- Calcular o comprimento (número de caracteres) de cada nome;
- Pegar o maior deles com
max()
.
Em código:
maior_lng = max(len(nome) for nome, preco in produtos)
Passo 4
Com o
maior_lng
em mãos, a gente usa uma f-string para imprimir cada linha assim:{nome:<{maior_lng}}
significa “nome alinhado à esquerda, completando com espaços atémaior_lng
caracteres”;R$ {preco:>7.2f}
significa “preço alinhado à direita num campo de 7 caracteres, com 2 casas decimais”.
O7
aí é só um exemplo pra termos espaço pro “R$ ” mais o valor; você pode ajustar se quiser.
Passo 5
Juntando tudo, fica assim no loop:
for nome, preco in produtos:
print(f"{nome:<{maior_lng}} R$ {preco:>7.2f}")
Resposta
produtos = (
("Maçã", 2.5),
("Banana", 3.0),
("Leite", 4.75),
("Ovos", 0.5),
("Pão", 1.8),
)
# 1) Descobrir o tamanho do nome mais longo
maior_lng = max(len(nome) for nome, preco in produtos)
# 2) Imprimir com preços alinhados
for nome, preco in produtos:
print(f"{nome:<{maior_lng}} R$ {preco:>7.2f}")
Quando você rodar isso, vai ver algo como:
Maçã R$ 2.50
Banana R$ 3.00
Leite R$ 4.75
Ovos R$ 0.50
Pão R$ 1.80
Maçã R$ 2.50
Banana R$ 3.00
Leite R$ 4.75
Ovos R$ 0.50
Pão R$ 1.80