3
respostas

Desafio: hora da prática

Acabou ficando enorme mas tenho certeza que mais estudo e aprendizado os codigos ficaram mais limpos e enxutos.

  • Aquecendo na programação
    1 -
    lista_de_gastos = [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08]
    soma_total_dos_gastos = sum(lista_de_gastos)
    quantidade_de_gastos = len(lista_de_gastos)
    media_dos_gastos = soma_total_dos_gastos / quantidade_de_gastos
    print("--- RELATÓRIO DE GASTOS ---")
    print("A soma de todos os gastos deu:")
    print(soma_total_dos_gastos)

print("A quantidade de meses/gastos analisados foi:")
print(quantidade_de_gastos)

print("Portanto, a média de gastos é:")
print(media_dos_gastos)
print("---------------------------")

2-
lista_de_gastos = [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08]
compras_maiores_que_3000 = 0
for gasto in lista_de_gastos:
if gasto > 3000.0:
compras_maiores_que_3000 = compras_maiores_que_3000 + 1
total_de_compras = len(lista_de_gastos)
porcentagem_maiores = (compras_maiores_que_3000 / total_de_compras) * 100
print("Lista de Gastos:")
print(lista_de_gastos)
print("COMPRAS ACIMA DE R$ 3000")
print("Quantidade de compras acima de 3000 reais:")
print(compras_maiores_que_3000)

print("Total de compras realizadas pela empresa:")
print(total_de_compras)

print("Porcentagem que essas compras representam do total:")
print(porcentagem_maiores, "%")
print("-------------------------------------------")

3-
minha_lista_de_numeros = []
print("Por favor, digite 5 números inteiros:")
for i in range(5):
numero_digitado = int(input(f"Digite o número {i + 1}: "))
minha_lista_de_numeros.append(numero_digitado)
print("A lista criada foi:")
print(minha_lista_de_numeros)

4-
minha_lista_de_numeros = []
print("Por favor, digite 5 números inteiros:")
for i in range(5):
numero_digitado = int(input(f"Digite o número {i + 1}: "))
minha_lista_de_numeros.append(numero_digitado)
print("A lista criada foi:")
print(minha_lista_de_numeros)
minha_lista_de_numeros.reverse()
print("Lista na ordem INVERSA:")
print(minha_lista_de_numeros)

5-
numero_limite = int(input("Digite um número inteiro positivo: "))
lista_de_primos = []
for numero_atual in range(1, numero_limite + 1):
if numero_atual <= 1:
continue
contador_de_divisores = 0
for i in range(1, numero_atual + 1):
if numero_atual % i == 0:
contador_de_divisores = contador_de_divisores + 1
if contador_de_divisores == 2:
lista_de_primos.append(numero_atual)
print("Os números primos encontrados entre 1 e", numero_limite, "foram:")
print(lista_de_primos)

6-
dia = int(input("Digite o dia (ex: 25): "))
mes = int(input("Digite o mês (ex: 5): "))
ano = int(input("Digite o ano (ex: 2026): "))
data_valida = True
if ano <= 0 or mes < 1 or mes > 12 or dia < 1:
data_valida = False

else:
ano_bissexto = False
if (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0):
ano_bissexto = True
if mes == 2:
if ano_bissexto == True and dia > 29:
data_valida = False
elif ano_bissexto == False and dia > 28:
data_valida = False
elif mes == 4 or mes == 6 or mes == 9 or mes == 11:
if dia > 30:
data_valida = False
else:
if dia > 31:
data_valida = False
if data_valida == True:
print("A data", dia, "/", mes, "/", ano, "é VÁLIDA!")
else:
print("A data", dia, "/", mes, "/", ano, "é INVÁLIDA!")

  • Momento dos projetos
    7-
    bacterias_por_dia = [1.2, 2.1, 3.3, 5.0, 7.8, 11.3, 16.6, 25.1, 37.8, 56.9]
    lista_de_crescimento = []
    for i in range(1, len(bacterias_por_dia)):
    amostra_atual = bacterias_por_dia[i]
    amostra_passada = bacterias_por_dia[i - 1]
    percentual = 100 * (amostra_atual - amostra_passada) / amostra_passada
    lista_de_crescimento.append(percentual)
    print("Dados originais das bactérias:")
    print(bacterias_por_dia)
    print("Lista com os percentuais de crescimento por dia:")
    print(lista_de_crescimento)

8-
quantidade_doces = 0
quantidade_amargos = 0
print("Por favor, digite os 10 IDs dos produtos:")
for i in range(10):
id_produto = int(input(f"Digite o ID do produto {i + 1}: "))
if id_produto % 2 == 0:
print("Esse produto é um DOCE!")
quantidade_doces = quantidade_doces + 1
else:
print("Esse produto é AMARGO!")
quantidade_amargos = quantidade_amargos + 1
print("Quantidade de produtos DOCES (IDs pares):")
print(quantidade_doces)
print("Quantidade de produtos AMARGOS (IDs ímpares):")
print(quantidade_amargos)

9-

3 respostas

9-
gabarito_da_prova = {
"01": "D",
"02": "A",
"03": "C",
"04": "B",
"05": "A",
"06": "D",
"07": "C",
"08": "C",
"09": "A",
"10": "B"
}
nota_final = 0
print("Digite as respostas do aluno em MAIÚSCULO.")
print("---")
for questao, resposta_certa in gabarito_da_prova.items():
resposta_aluno = input(f"Digite a resposta da Questão {questao}: ")
if resposta_aluno == resposta_certa:
nota_final = nota_final + 1
print("Total de acertos:", nota_final)
print("Nota final:", nota_final, "/ 10")

10-
meses_do_ano = [
"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho",
"Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
]
lista_temperaturas = []
print("Por favor, informe a temperatura média de cada mês:")
for mes in meses_do_ano:
temp = float(input(f"Digite a temperatura média de {mes} (°C): "))
lista_temperaturas.append(temp)
soma_total = sum(lista_temperaturas)
media_anual = soma_total / len(lista_temperaturas)
print("A média anual de temperatura foi:", round(media_anual, 2), "°C")
print("Meses com temperaturas ACIMA da média anual:")
for i in range(12):
if lista_temperaturas[i] > media_anual:
nome_mes = meses_do_ano[i]
temperatura_mes = lista_temperaturas[i]

    print(f"- {nome_mes}: {temperatura_mes} °C")

11-
dados_vendas = {
'Produto A': 300,
'Produto B': 80,
'Produto C': 60,
'Produto D': 200,
'Produto E': 250,
'Produto F': 30
}
total_vendas = 0
produto_mais_vendido = ""
maior_quantidade = 0
for produto, quantidade in dados_vendas.items():
total_vendas = total_vendas + quantidade
if quantidade > maior_quantidade:
maior_quantidade = quantidade
produto_mais_vendido = produto
print("O total de vendas de todos os produtos juntos foi:")
print(total_vendas, "unidades")
print("O produto campeão de vendas foi:")
print(produto_mais_vendido, "com", maior_quantidade, "unidades vendidas.")

12-
votos_design = {
'Design 1': 1334,
'Design 2': 982,
'Design 3': 1751,
'Design 4': 210,
'Design 5': 1811
}
total_votos = 0
design_vencedor = ""
maior_votos = 0
for design, votos in votos_design.items():
total_votos = total_votos + votos
if votos > maior_votos:
maior_votos = votos
design_vencedor = design
porcentagem_vencedor = (maior_votos / total_votos) * 100
print("Total de votos computados na pesquisa:", total_votos)
print("O design VENCEDOR foi o:", design_vencedor)
print("Quantidade de votos recebidos:", maior_votos)
print("Porcentagem de votos do vencedor:", round(porcentagem_vencedor, 2), "%")

13-
lista_salarios = [1172, 1644, 2617, 5130, 5532, 6341, 6650, 7238, 7685, 7782, 7903]
dicionario_abonos = {}
total_gastos_abono = 0
colaboradores_abono_minimo = 0
maior_abono = 0
for salario in lista_salarios:
abono_calculado = salario * 0.10
if abono_calculado < 200:
abono_final = 200.0
colaboradores_abono_minimo = colaboradores_abono_minimo + 1
else:
abono_final = abono_calculado
dicionario_abonos[salario] = abono_final
for salario, abono in dicionario_abonos.items():
total_gastos_abono = total_gastos_abono + abono
if abono > maior_abono:
maior_abono = abono
print("Dicionário de salários e abonos gerado:")
print(dicionario_abonos)
print("Total de gastos da empresa com o pagamento de abonos:")
print("R$", total_gastos_abono)
print("Quantidade de colaboradores que receberam o abono mínimo (R$ 200):")
print(colaboradores_abono_minimo, "colaborador(es)")
print("Maior valor de abono fornecido pela empresa:")
print("R$", maior_abono)

14-
dados_floresta = {
'Área Norte': [2819, 7236],
'Área Leste': [1440, 9492],
'Área Sul': [5969, 7496],
'Área Oeste': [14446, 49688],
'Área Centro': [22558, 45148]
}
area_maior_diversidade = ""
maior_diversidade_vista = 0
for area, lista_especies in dados_floresta.items():
total_especies_da_area = sum(lista_especies)
quantidade_grupos = len(lista_especies)
media_da_area = total_especies_da_area / quantidade_grupos
print(f"A média de espécies na {area} é de: {media_da_area}")
if total_especies_da_area > maior_diversidade_vista:
maior_diversidade_vista = total_especies_da_area
area_maior_diversidade = area
print("A área com a MAIOR diversidade biológica é a:")
print(area_maior_diversidade)

15-
dados_idade_setores = {
'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]
}
soma_idades_geral = 0
total_colaboradores_geral = 0
for setor, lista_idades in dados_idade_setores.items():
soma_idades_setor = sum(lista_idades)
quantidade_setor = len(lista_idades)
media_setor = soma_idades_setor / quantidade_setor
print(f"A idade média do {setor} é: {media_setor} anos.")
soma_idades_geral = soma_idades_geral + soma_idades_setor
total_colaboradores_geral = total_colaboradores_geral + quantidade_setor
media_idade_geral = soma_idades_geral / total_colaboradores_geral
print(f"A IDADE MÉDIA GERAL da empresa é: {round(media_idade_geral, 2)} anos.")
pessoas_acima_da_media = 0
for setor, lista_idades in dados_idade_setores.items():
for idade in lista_idades:
if idade > media_idade_geral:
pessoas_acima_da_media = pessoas_acima_da_media + 1
print("Quantidade de pessoas acima da média geral de idade:")
print(pessoas_acima_da_media, "colaboradores")

Olá, Marcelo. Como vai?

Que entrega espetacular! Você resolveu todas as 15 atividades do desafio prático de uma vez só, passando por conceitos que vão desde a manipulação de listas e dicionários até laços de repetição complexos e estruturas condicionais avançadas.

Não se preocupe com o tamanho do código neste início. Na programação, o primeiro objetivo essencial é fazer o algoritmo funcionar e resolver o problema proposto de forma correta (o que você fez com maestria). A otimização e a escrita de códigos mais enxutos vêm naturalmente com a prática e com o conhecimento de novos recursos da linguagem.

Analisando a sua maratona de códigos, destaco os pontos mais altos da sua entrega e trago algumas sugestões de como o próprio Python pode te ajudar a reduzir e simplificar a escrita no futuro:

1. Excelente Lógica de Negócio e Validação (Exercício 6)

O seu código para validar datas ficou fantástico. Lidar com anos bissextos e a variação de dias de cada mês (28, 29, 30 ou 31) é um clássico desafio de lógica. Você encadeou as condições perfeitamente para isolar o mês de fevereiro e os meses de 30 dias.

2. Dica de Otimização: Operadores de Atribuição Compacta

Em vários momentos do código, para incrementar contadores ou somar valores, você utilizou a estrutura tradicional:

compras_maiores_que_3000 = compras_maiores_que_3000 + 1
total_vendas = total_vendas + quantidade

No Python, existe um atalho de sintaxe muito comum no mercado que enxuga essa escrita utilizando os operadores +=:

compras_maiores_que_3000 += 1
total_vendas += quantidade

Ambos fazem exatamente a mesma coisa, mas o segundo deixa o código visualmente mais limpo.

3. Conhecendo Funções Auxiliares: max() e min()

Nos exercícios 11 e 12, você construiu laços for perfeitos para descobrir manualmente qual era o maior valor dentro de um dicionário. Esse é um excelente exercício para fixar a lógica!

Quando você quiser deixar esse processo mais rápido em projetos futuros, saiba que o Python possui a função nativa max(), que consegue encontrar o maior valor ou a maior chave diretamente.

  • Exemplo de como enxugar o Exercício 11:
# Descobre o produto campeão direto pela chave que tem o maior valor
produto_campeao = max(dados_vendas, key=dados_vendas.get)
maior_quantidade = dados_vendas[produto_campeao]

4. Uso Correto de Dicionários e Métodos Integrados

No exercício 9 (gabarito da prova) e no 14 (dados da floresta), o seu uso do método .items() para desestruturar o dicionário em chave e valor (for questao, resposta_certa in gabarito_da_prova.items():) foi impecável. Essa é a melhor prática recomendada para iterar sobre estruturas de dados em Python.

Você demonstrou uma base de lógica de programação extremamente sólida e uma capacidade incrível de persistência para concluir todos os cenários propostos. Parabéns pelo excelente desempenho na prática!

Espero que possa ter lhe ajudado!