1
resposta

DESAFIO: HORA DA PRÁTICA

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().

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

media = sum(gastos) / len(gastos)

print("A média de gastos da empresa é:", media)

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.

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

acima_3000 = [valor for valor in gastos if valor > 3000]

qtd_acima_3000 = len(acima_3000)

porcentagem = (qtd_acima_3000 / len(gastos)) * 100

print("Compras acima de 3000 reais:", qtd_acima_3000)
print("Porcentagem em relação ao total: {:.2f}%".format(porcentagem))

3) Faça um código que colete em uma lista 5 números inteiros quaisquer e imprima a lista. Exemplo: [1,4,7,2,4].

numeros = []

for i in range(5):
valor = int(input(f"Digite o {i+1}º número inteiro: "))
numeros.append(valor)

print("A lista de números é:", numeros)

4) Colete novamente 5 inteiros e imprima a lista em ordem inversa à enviada.

numeros = []

for i in range(5):
valor = int(input(f"Digite o {i+1}º número inteiro: "))
numeros.append(valor)

print("Lista original:", numeros)

print("Lista inversa:", numeros[::-1])

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.

def eh_primo(n):
if n < 2:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True

limite = int(input("Digite um número inteiro: "))

primos = [num for num in range(1, limite + 1) if eh_primo(num)]

print("Lista de números primos até", limite, ":", primos)

6) Escreva um programa que peça uma data informando o dia, mês e ano e determine se ela é válida para uma análise.

from datetime import datetime

dia = int(input("Digite o dia: "))
mes = int(input("Digite o mês: "))
ano = int(input("Digite o ano: "))

try:
data = datetime(ano, mes, dia)
print("Data válida:", data.strftime("%d/%m/%Y"))
except ValueError:
print("Data inválida! Verifique os valores informados."

1 resposta

Olá, Penha. Como vai?

Parabéns pela resolução do desafio! Seus códigos ficaram excelentes, muito bem estruturados e demonstram que você compreendeu perfeitamente como utilizar as estruturas de dados e funções no Python.

Achei sensacional a forma como você resolveu os exercícios. Vale destacar alguns pontos muito positivos da sua solução:

  • Uso de List Comprehension: Nas questões 2 e 5, você utilizou a compreensão de listas ([valor for valor in gastos if ...]). Essa é uma prática extremamente elegante e comum no dia a dia de quem trabalha com Python e Data Science, pois torna o código muito mais limpo e rápido.
  • Fatiamento de Listas (Slicing): Na questão 4, utilizar a sintaxe de fatiamento numeros[::-1] para inverter a ordem da lista foi uma sacada muito inteligente e tipicamente "pythônica".
  • Lógica Avançada e Otimização: Na função eh_primo da questão 5, você limitou a busca até a raiz quadrada do número (int(n0.5) + 1). Essa é uma excelente técnica de otimização matemática para algoritmos, poupando processamento desnecessário.
  • Tratamento de Exceções: Na última questão, o uso do bloco try/except com o módulo datetime foi a melhor escolha possível. Em vez de criar dezenas de regras manuais para meses com 30 ou 31 dias e anos bissextos, você deixou que o próprio Python fizesse a validação de forma segura.

Apenas como uma dica extra para a questão 3 e 4 no ambiente do fórum ou na hora de rodar no terminal: lembre-se sempre de manter a indentação correta dentro do laço for. No Python, o recuo do código é obrigatório para que ele saiba o que está dentro do loop. O seu código ajustado com a indentação fica assim:

numeros = []
for i in range(5):
    valor = int(input(f"Digite o {i+1}º número inteiro: "))
    numeros.append(valor)
print("A lista de números é:", numeros)

Seus scripts cobrem desde manipulações básicas até lógicas de validação mais complexas, mostrando que você está avançando com passos firmes na trilha de Python para Dados. Continue com essa dedicação!

Espero que possa ter lhe ajudado!