1
resposta

Desafio: hora da prática[1]

Q1

valores_gastos = [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08]
media_gastos = sum(valores_gastos) / len(valores_gastos)
print(f'a média dos valores gastos é: {media_gastos}')

Q2

valor_acima_3000 = 0
for valor in valores_gastos:
if valor > 3000.0:
valor_acima_3000 += 1
porcentagem_acima_3000 = (valor_acima_3000 / len(valores_gastos)) * 100

print(f'compras acima de 3000 é: {valor_acima_3000}')
print(f'a porcentagem de compras acima de 3000 é: {porcentagem_acima_3000}%')

Q3

lista_numeros = []

for i in range(5):
numero = int(input('Digite um número: '))
lista_numeros.append(numero)

print(lista_numeros)

Q4

lista_numeros_reverse = []

for i in range(5):
numero = int(input('Digite um número: '))
lista_numeros_reverse.append(numero)

lista_numeros_reverse.reverse()
print(lista_numeros_reverse)

Q5

numero = int(input('Digite um número: '))

lista_primos = []

if numero > 1:

for n in range(2, numero + 1):
    divisores = 0
    for i in range(1, n + 1):
        if n % i == 0:
            divisores += 1
    if divisores == 2:
        lista_primos.append(n)
print(f'Lista de números primos: {lista_primos}')

else:
print('Digite um número maior que 1')

Q6

dia = int(input('Digite o dia: '))
mes = int(input('Digite o mês: '))
ano = int(input('Digite o ano: '))
data_valida = True
if mes < 1 or mes > 12:
data_valida = False
elif mes == 2:
# Ano bissexto
if (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0):
if dia < 1 or dia > 29:
data_valida = False
else:
if dia < 1 or dia > 28:
data_valida = False
elif mes in [4, 6, 9, 11]:
if dia < 1 or dia > 30:
data_valida = False
else:
if dia < 1 or dia > 31:
data_valida = False
if data_valida:
print('Data válida')
else:
print('Data inválida')

Q7

lista_estudos = [1.2, 2.1, 3.3, 5.0, 7.8, 11.3, 16.6, 25.1, 37.8, 56.9]
percentuais_crescimento = []
for i in range(1, len(lista_estudos)):
amostra_passada = lista_estudos[i - 1]
amostra_atual = lista_estudos[i]
calculo_percentual = (
100 * (amostra_atual - amostra_passada)
/ amostra_passada
)
percentuais_crescimento.append(calculo_percentual)
print(percentuais_crescimento)

Q8

ids_produtos = {'doces':0, 'amargos': 0}
quant_produtos = 10

while quant_produtos > 0:
id_produto = int(input('Digite o ID do produto: '))
if id_produto % 2 == 0:
ids_produtos['doces'] += 1
else:
ids_produtos['amargos'] += 1
quant_produtos -= 1

print(f'Quantidade de produtos doces: {ids_produtos["doces"]}')
print(f'Quantidade de produtos amargos: {ids_produtos["amargos"]}')

Q9

gabarito = {1: 'D',2: 'A',3: 'C',4: 'B',5: 'A',6: 'D',7: 'C',8: 'C',9: 'A',10: 'B'}
acertos = 0
erros = 0

for q in range(10):
print('Escolha entre as alternativas: A, B, C ou D.')
resposta = input(f'Digite a resposta da questão {q+1}: ')
if resposta.upper() == gabarito[q+1]:
acertos += 1
else:
erros += 1

print(f'Você acertou {acertos} questões e errou {erros} questões.')

Q10

temperaturas = {'Janeiro': 0, 'Fevereiro':0, 'Março':0, 'Abril':0, 'Maio':0, 'Junho':0, 'Julho':0, 'Agosto':0, 'Setembro':0, 'Outubro':0, 'Novembro':0, 'Dezembro':0}
temperaturas_acima_media = []

for mes in temperaturas:
temperatura = float(input(f'Digite a temperatura do mês de {mes}: '))
temperaturas[mes] = temperatura
media_anual = (sum(temperaturas.values())/len(temperaturas))

for mes in temperaturas:
if temperaturas[mes] > media_anual:
temperaturas_acima_media.append(mes)
print(f'Média anual: {media_anual:.2f}°C')

print('Temperaturas acima da média anual: 'f'{temperaturas_acima_media}')

Q11

produtos_vendidos = {'Produto A': 300, 'Produto B': 80, 'Produto C': 60,'Produto D': 200, 'Produto E': 250, 'Produto F': 30}
total_vendas = sum(produtos_vendidos.values())
produto_mais_vendido = max(produtos_vendidos, key=produtos_vendidos.get)
print(f'Total de vendas: {total_vendas}')
print(f'Produto mais vendido: {produto_mais_vendido}')

1 resposta

Olá, Rafaela! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou o sum para calcular totais com Python, utilizou muito bem o for para percorrer listas e ainda compreendeu a importância da validação lógica para resolver diferentes problemas em sequência.

Uma dica interessante para o futuro é organizar cada questão em funções separadas, deixando o código mais modular e fácil de reutilizar. Assim:

def calcular_media(valores):
    return sum(valores) / len(valores)

def contar_acima(valores, limite):
    acima = [v for v in valores if v > limite]
    return len(acima), (len(acima) / len(valores)) * 100

valores_gastos = [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08]

media = calcular_media(valores_gastos)
qtd, perc = contar_acima(valores_gastos, 3000)

print(f"A média dos valores gastos é: {media:.2f}")
print(f"Compras acima de 3000: {qtd} ({perc:.2f}%)")

Isso faz com que o programa fique mais organizado, permitindo reaproveitar funções em diferentes contextos.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Ah, uma pergunta: Você prefere organizar soluções em blocos únicos para cada exercício ou modularizar em funções reutilizáveis para maior clareza e manutenção?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!