3
respostas

Projeto Final 2


# 1) Cálculo da média de gastos
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(f"Média de gastos: R$ {media:.2f}")

# 2) Compras acima de 3000 e porcentagem
acima_3000 = [g for g in gastos if g > 3000]
quantidade = len(acima_3000)
porcentagem = (quantidade / len(gastos)) * 100
print(f"Compras acima de R$3000: {quantidade} ({porcentagem:.1f}%)")

# 3) Coleta de 5 números inteiros
lista1 = []
for i in range(5):
    numero = int(input(f"Digite o {i+1}º número inteiro: "))
    lista1.append(numero)
print("Lista digitada:", lista1)

# 4) Coleta de 5 inteiros e imprime a lista invertida
lista2 = []
for i in range(5):
    numero = int(input(f"Digite o {i+1}º número inteiro: "))
    lista2.append(numero)
print("Lista invertida:", lista2[::-1])

# 5) Lista de números primos entre 1 e N
n = int(input("Digite um número para listar os primos até ele: "))
primos = []
for num in range(2, n + 1):
    eh_primo = True
    for div in range(2, int(num**0.5) + 1):
        if num % div == 0:
            eh_primo = False
            break
    if eh_primo:
        primos.append(num)
print("Números primos:", primos)

# 6) Validação de data
dia = int(input("Informe o dia: "))
mes = int(input("Informe o mês: "))
ano = int(input("Informe o ano: "))

valida = True
if mes < 1 or mes > 12:
    valida = False
elif dia < 1 or dia > 31:
    valida = False
elif mes in [4, 6, 9, 11] and dia > 30:
    valida = False
elif mes == 2:
    bissexto = (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0)
    if (bissexto and dia > 29) or (not bissexto and dia > 28):
        valida = False

if valida:
    print("Data válida para análise.")
else:
    print("Data inválida.")
    

Abaixo estão os códigos solicitados (do 7 ao 15), todos em **Python**, com explicações breves e prontos para execução:

 **7) Percentual de crescimento de bactérias**


bacterias = [1.2, 2.1, 3.3, 5.0, 7.8, 11.3, 16.6, 25.1, 37.8, 56.9]
crescimento_percentual = []

for i in range(1, len(bacterias)):
    crescimento = 100 * (bacterias[i] - bacterias[i-1]) / bacterias[i-1]
    crescimento_percentual.append(round(crescimento, 2))

print("Crescimento percentual por dia:", crescimento_percentual)


**8) Classificação de produtos (doces/par)**

doces = 0
amargos = 0

for i in range(10):
    id_produto = int(input(f"Digite o ID do produto {i+1}: "))
    if id_produto % 2 == 0:
        doces += 1
    else:
        amargos += 1

print(f"Doces: {doces} | Amargos: {amargos}")

9) Correção da prova com gabarito

gabarito = ['D', 'A', 'C', 'B', 'A', 'D', 'C', 'C', 'A', 'B'] acertos = 0

for i in range(10): resposta = input(f"Resposta da questão {i+1}: ").strip().upper() if resposta == gabarito[i]: acertos += 1

print(f"Nota final: {acertos}/10")


3 respostas

Continuação:

10) Temperaturas médias mensais

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

for mes in meses: temp = float(input(f"Temperatura média de {mes}: ")) temperaturas.append(temp)

media_anual = sum(temperaturas) / len(temperaturas) print(f"Média anual: {media_anual:.2f}°C")

print("Meses com temperatura acima da média:") for i, temp in enumerate(temperaturas): if temp > media_anual: print(f"{meses[i]}: {temp}°C")


 **11) Total de vendas e produto mais vendido**

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

total = sum(vendas.values())
mais_vendido = max(vendas, key=vendas.get)

print(f"Total de vendas: {total}")
print(f"Produto mais vendido: {mais_vendido} ({vendas[mais_vendido]})")

12) Votação de design vencedor

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) porcentagem = (votos[vencedor] / total_votos) * 100

print(f"Design vencedor: {vencedor} com {porcentagem:.2f}% dos votos.")


 **13) Cálculo de abonos**

salarios = [1172, 1644, 2617, 5130, 5532, 6341, 6650, 7238, 7685, 7782, 7903]
abonos = {}
total_gasto = 0
minimos = 0

for salario in salarios:
    abono = max(salario * 0.10, 200)
    abonos[salario] = abono
    total_gasto += abono
    if abono == 200:
        minimos += 1

maior_abono = max(abonos.values())

print(f"Total de gastos com abonos: R$ {total_gasto:.2f}")
print(f"Colaboradores que receberam o abono mínimo: {minimos}")
print(f"Maior valor de abono: R$ {maior_abono:.2f}")

14) Diversidade biológica por área

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

media_por_area = {} diversidade_total = {}

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

mais_diversa = max(diversidade_total, key=diversidade_total.get)

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

print(f"Área com maior diversidade: {mais_diversa}")

15) Análise de idades por setor

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] }

media_por_setor = {} todas_idades = []

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

media_geral = sum(todas_idades) / len(todas_idades) acima_media = len([idade for idade in todas_idades if idade > media_geral])

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

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


E aí, Viviane! Tudo bem?

Parabéns! Mantenha o ritmo nos exercícios e continue compartilhando na nossa comunidade.

Percebi que você praticou o uso de listas e estruturas de repetição, aplicou muito bem o fatiamento de listas para inverter valores e ainda entendeu a relevância de estruturas condicionais para validações como a de datas.

Uma sugestão para evoluir ainda mais é usar funções em Python com o objetivo de modularizar e reaproveitar trechos de código. Veja só:

def validar_data(dia, mes, ano):
    if mes < 1 or mes > 12:
        return False
    elif dia < 1 or dia > 31:
        return False
    elif mes in [4, 6, 9, 11] and dia > 30:
        return False
    elif mes == 2:
        bissexto = (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0)
        if (bissexto and dia > 29) or (not bissexto and dia > 28):
            return False
    return True

# Exemplo de uso
if validar_data(29, 2, 2024):
    print("Data válida")
else:
    print("Data inválida")

Resultado:

Data válida

Essa abordagem ajuda a deixar o código mais organizado, reutilizável e fácil de testar.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

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!

Fiz desse jeito aqui... Pls..

EXERCÍCIOS DE PYTHON - LISTAS E DICIONÁRIOS

=============================================

print("=" * 50) print("EXERCÍCIOS DE AQUECIMENTO") print("=" * 50)

EXERCÍCIO 1

print("\n1) Cálculo da média de gastos da empresa") gastos = [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08] media_gastos = sum(gastos) / len(gastos) print(f"Lista de gastos: {gastos}") print(f"Média de gastos: R$ {media_gastos:.2f}")

EXERCÍCIO 2

print("\n2) Compras acima de R$ 3000") compras_acima_3000 = [gasto for gasto in gastos if gasto > 3000] quantidade_acima_3000 = len(compras_acima_3000) porcentagem = (quantidade_acima_3000 / len(gastos)) * 100 print(f"Compras acima de R$ 3000: {quantidade_acima_3000}") print(f"Porcentagem: {porcentagem:.1f}%")

EXERCÍCIO 3

print("\n3) Coletando 5 números inteiros") numeros = [] print("Digite 5 números inteiros:") for i in range(5): numero = int(input(f"Número {i+1}: ")) numeros.append(numero) print(f"Lista criada: {numeros}")

EXERCÍCIO 4

print("\n4) Lista em ordem inversa") numeros_inversos = [] print("Digite 5 números inteiros para inversão:") for i in range(5): numero = int(input(f"Número {i+1}: ")) numeros_inversos.append(numero) print(f"Lista original: {numeros_inversos}") print(f"Lista invertida: {numeros_inversos[::-1]}")

EXERCÍCIO 5

print("\n5) Números primos até um número dado") 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

numero_limite = int(input("Digite um número para encontrar primos até ele: ")) primos = [n for n in range(1, numero_limite + 1) if eh_primo(n)] print(f"Números primos entre 1 e {numero_limite}: {primos}")