2
respostas

[Projeto] 13 Desafio: hora da prática (da questão 1 a 9)

1)
def media(lista):
return sum(lista) / len(lista)

lista = [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08]
mean = media(lista)
print(f'A média da lista é {mean}')

  1. compras_acima_de_3000 = list(filter(lambda x: x > 3000 , lista))
    percentagem = len(compras_acima_de_3000) * 100 / len(lista)
    print(f'Quantidade: {len(compras_acima_de_3000)}')
    print(f'Percentagem: {percentagem:.2f}%')

lista = []
for i in range(5):
coleta = int(input("Digite um número inteiro: "))
lista.append(coleta)

print("Lista:")
for elemento in lista:
print(elemento)

4)
lista.reverse()

print("Lista Inversa:")
for elemento in lista:
print(elemento)

def list_primes(number):
lista = []
for checked in range(2, number + 1):
primo = True

    for i in range(2, int(checked**0.5) + 1):
        if checked % i == 0:
            primo = False
            break
    if primo:
        lista.append(checked)
return lista

numero = int(input("Digite um número inteiro: "))
primos = list_primes(numero)
print(primos)

  1. 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.
    def ano_bissexto(ano):
    return (ano %4 == 0 and ano % 100 != 0) or (ano %400 == 0)

def data_valida(dia, mes, ano):
if mes < 1 or mes > 12:
return False

if dia < 1:
    return False

dias_por_mes = [31, 29 if ano_bissexto(ano) else 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

if dia > dias_por_mes[mes - 1]:
    return False

return True

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

if data_valida(dia, mes, ano):
print("Data válida")
else:
print("Data inválida")

Momento dos projetos
7)
def percentual_evolucao(lista):
percentuais = []
for i in range(len(lista) -1):
percentual = 100 * (lista[i + 1] - lista[i]) / lista[i]
percentuais.append(percentual)
return percentuais

bacterias = [1.2, 2.1, 3.3, 5.0, 7.8, 11.3, 16.6, 25.1, 37.8, 56.9]
evolucao = percentual_evolucao(bacterias)

print("Evolução percentual:")
print(evolucao)

8)
def total_doce_e_amargo(alimentos):
total_sabores = []
doces = 0
amargos = 0
for alimento_id in alimentos:
if alimento_id % 2 == 0:
doces += 1
else:
amargos += 1
return doces, amargos

alimentos = []
print("Digite o id do alimento, sendo ímpar para amargos e par para doces:")
for i in range(10):
sabor = int(input(f"Alimento {i + 1}: "))
alimentos.append(sabor)
doces, amargos = total_doce_e_amargo(alimentos)
print("Total dos sabores:")
print(f"Doces: {doces}")
print(f"Amargos: {amargos}")

9)
def inserir_respostas(quantidade):
respostas = []
print("Insira as respostas (A, B, C ou D):")

for i in range(quantidade):
    resposta = ""

    while resposta not in ["A", "B", "C", "D"]:
        resposta = input(f"Resposta {i + 1}: ").upper()

    respostas.append(resposta)

return respostas

def calcular_nota(respostas, gabarito):
pontuacao = 0

for i in range(len(respostas)):
    if respostas[i] == gabarito[i]:
        pontuacao += 1

return pontuacao

gabarito = ["D", "A", "C", "B", "A", "D", "C", "C", "A", "B"]

respostas = inserir_respostas(10)

resultado = calcular_nota(respostas, gabarito)

print(f"A nota do aluno é {resultado}")

2 respostas

Continuação (da 10 em diante):

10)

meses = [
"Janeiro", "Fevereiro", "Março", "Abril",
"Maio", "Junho", "Julho", "Agosto",
"Setembro", "Outubro", "Novembro", "Dezembro"
]

temperaturas = []

for i in range(12):
temp = float(input(f"Digite a temperatura média de {meses[i]}: "))
temperaturas.append(temp)

media_anual = sum(temperaturas) / len(temperaturas)

print(f"\nMédia anual: {media_anual:.2f}°C\n")

print("Meses com temperatura acima da média:")

for i in range(12):
if temperaturas[i] > media_anual:
print(f"{meses[i]}: {temperaturas[i]:.2f}°C")

11)

vendas = {
'Produto A': 300,
'Produto B': 80,
'Produto C': 60,
'Produto D': 200,
'Produto E': 250,
'Produto F': 30
}

total_vendas = sum(vendas.values())

produto_mais_vendido = max(vendas, key=vendas.get)
maior_venda = vendas[produto_mais_vendido]

print(f"Total de vendas: {total_vendas}")
print(f"Produto mais vendido: {produto_mais_vendido} ({maior_venda})")

12)
votos = {
"Design 1": 1334,
"Design 2": 982,
"Design 3": 1751,
"Design 4": 210,
"Design 5": 1811
}

total_votos = sum(votos.values())

vencedor = max(votos, key=votos.get)
votos_vencedor = votos[vencedor]

porcentagem = (votos_vencedor / total_votos) * 100

print(f"Total de votos: {total_votos}")
print(f"Design vencedor: {vencedor}")
print(f"Votos: {votos_vencedor}")
print(f"Porcentagem: {porcentagem:.2f}%")

13)
salarios = [1172, 1644, 2617, 5130, 5532, 6341, 6650, 7238, 7685, 7782, 7903]

abonos = {}

for salario in salarios:
abono = salario * 0.10

if abono < 200:
    abono = 200

abonos[salario] = abono

total_abonos = sum(abonos.values())

quantidade_minimo = sum(1 for v in abonos.values() if v == 200)

maior_abono = max(abonos.values())

print("Abonos por salário:")
print(abonos)

print(f"\nTotal gasto com abonos: {total_abonos:.2f}")
print(f"Quantidade que recebeu o mínimo: {quantidade_minimo}")
print(f"Maior abono: {maior_abono:.2f}")

14)
dados = {
'Área Norte': [2819, 7236],
'Área Leste': [1440, 9492],
'Área Sul': [5969, 7496],
'Área Oeste': [14446, 49688],
'Área Centro': [22558, 45148]
}

medias = {}

for area, especies in dados.items():
media = sum(especies) / len(especies)
medias[area] = media

area_mais_diversa = max(medias, key=medias.get)
maior_media = medias[area_mais_diversa]

print("Média de espécies por área:")
for area, media in medias.items():
print(f"{area}: {media:.2f}")

print(f"\nÁrea com maior diversidade: {area_mais_diversa}")
print(f"Média de espécies: {maior_media:.2f}")

  1. idades = {
    'Setor A': [22, 26, 30, 30, 35, 38, 40, 56, 57, 65],
    'Setor B': [22, 24, 26, 33, 41, 49, 50, 54, 60, 64],
    'Setor C': [23, 26, 26, 29, 34, 35, 36, 41, 52, 56],
    'Setor D': [19, 20, 25, 27, 34, 39, 42, 44, 50, 65]
    }

medias_setor = {}
todas_idades = []

for setor, lista in idades.items():
media = sum(lista) / len(lista)
medias_setor[setor] = media
todas_idades.extend(lista)

media_geral = sum(todas_idades) / len(todas_idades)

acima_media = sum(1 for idade in todas_idades if idade > media_geral)

print("Média por setor:")
for setor, media in medias_setor.items():
print(f"{setor}: {media:.2f}")

print(f"\nMédia geral: {media_geral:.2f}")

print(f"Pessoas acima da média geral: {acima_media}")

Oi, Paulo.

Agradeço por compartilhar.

Seu desenvolvimento ficou bem completo e mostra uma boa prática com listas, funções, dicionários, laços de repetição, filter, lambda, validação de dados e cálculos percentuais. Também ficou legal a separação de algumas lógicas em funções, como na média, nos números primos, na validação de datas, no cálculo da nota e na evolução percentual das bactérias.

Um ponto de atenção é manter sempre a indentação bem organizada no Python, já que ela define quais comandos pertencem a cada if, for, while ou função.

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