Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] 05_Estrutura de dados - Desafio Hora da Prática - Atividade 1/2/3/4/5

## 1) Faça um programa que tenha a seguinte lista contendo os valores de gastos de uma empresa de papel [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08]. Com esses valores, faça um programa que calcule a média de gastos. Dica: use as funções built-in sum() e len().
# Lista contendo os valores dos gastos em reais
gastostotais = [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08]

# Calcula a quantidade de elementos (gastos) na lista
quantidadegastos = len(gastostotais)

# Calcula a média dos gastos: soma todos os valores e divide pela quantidade
média = sum(gastostotais) / quantidadegastos

# Exibe a média dos gastos formatada com duas casas decimais
print(f'A média dos gastos é: R$ {média:.2f}')
## 2) Com os mesmos dados da questão anterior, defina quantas compras foram realizadas acima de 3000 reais e calcule a porcentagem quanto ao total de compras.
# Lista com os valores dos gastos
gastostotais = [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08]

# Soma todos os gastos para obter o total
totaldegastos = sum(gastostotais)

# Laço para percorrer cada índice da lista de gastos
for i in range(len(gastostotais)):
    # Verifica se o gasto é maior que R$ 3000
    if gastostotais[i] > 3000:
        # Exibe a informação sobre esse gasto:
        # - Qual a posição (gasto i+1)
        # - Valor em reais
        # - Porcentagem que ele representa do total
        print(f'O gasto {i+1} é maior que 3000: R$ {gastostotais[i]:.2f}, '
              f'representando {(gastostotais[i] / totaldegastos) * 100:.2f}% do total.')
## 3) Faça um código que colete em uma lista 5 números inteiros quaisquer e imprima a lista. Exemplo:
# Exibe uma mensagem inicial para o usuário
print('DIGITE 5 NÚMEROS:')

# Lista com as palavras ordinais para usar na mensagem de entrada
contador = ['primeiro', 'segundo', 'terceiro', 'quarto', 'quinto']

# Lista vazia onde os números digitados serão armazenados
numeros = []

# Laço que se repete 5 vezes, uma para cada número
for i in range(5):
    # Pede ao usuário que digite um número, usando a palavra ordinal correspondente
    numero = int(input(f'Digite o {contador[i]} número: '))
    
    # Adiciona o número digitado à lista 'numeros'
    numeros.append(numero)

numeros.sort()  # Ordena a lista de números em ordem crescente

# Exibe todos os números que o usuário digitou
print(f'Você digitou os números: {numeros}')
## 4) Colete novamente 5 inteiros e imprima a lista em ordem inversa à enviada.
# Exibe uma mensagem inicial para o usuário
print('DIGITE 5 NÚMEROS:')

# Lista com as palavras ordinais para usar na mensagem de entrada
contador = ['primeiro', 'segundo', 'terceiro', 'quarto', 'quinto']

# Lista vazia onde os números digitados serão armazenados
numeros = []

# Laço que se repete 5 vezes, uma para cada número
for i in range(5):
    # Pede ao usuário que digite um número, usando a palavra ordinal correspondente
    numero = int(input(f'Digite o {contador[i]} número: '))
    
    # Adiciona o número digitado à lista 'numeros'
    numeros.append(numero)

numeros.sort(reverse=True)  # Ordena a lista de números em ordem decrescente

# Exibe todos os números que o usuário digitou
print(f'Você digitou os números: {numeros}')
## 5) Faça um programa que, ao inserir um número qualquer, cria uma lista contendo todos os números primos entre 1 e o número digitado.
# Solicita ao usuário que digite um número inteiro
numero = int(input("Digite um número: "))

# Cria uma lista vazia para armazenar os números pares
numeropar = []

# Laço que percorre os números de 1 até o número digitado (inclusive)
for i in range(1, numero + 1):
    # Verifica se o número atual é par (ou seja, divisível por 2)
    if i % 2 == 0:
        # Adiciona o número par à lista numeropar
        numeropar.append(i)

# Exibe a lista com todos os números pares encontrados
print(f'Os números pares de 1 até {numero} são: {numeropar}')
1 resposta
solução!

Oi, Marinaldo! Como vai?

Agradeço por compartilhar sua solução com a comunidade Alura.

Você organizou bem o código e explicou cada passo com clareza — isso ajuda muito na hora de revisar ou ensinar. Gostei especialmente do uso das mensagens personalizadas com os ordinais nos exercícios 3 e 4.

No entanto, no exercício 5, o objetivo era listar números primos, mas o código está identificando os números pares. Para atender ao enunciado, o ideal seria algo assim:



numero = int(input("Digite um número: "))
primos = []

for i in range(2, numero + 1):
    for j in range(2, i):
        if i % j == 0:
            break
    else:
        primos.append(i)

print(f'Números primos de 1 até {numero}: {primos}')

Esse código verifica se cada número tem apenas dois divisores (1 e ele mesmo), caracterizando um número primo.

Seu projeto está ótimo, parabéns pela dedicação em cada parte!

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