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

[Projeto] Momento dos projetos parte 01

  1. Para um estudo envolvendo o nível de multiplicação de bactérias em uma colônia, foi coletado o número de bactérias por dia (em milhares) e pode ser observado a seguir: [1.2, 2.1, 3.3, 5.0, 7.8, 11.3, 16.6, 25.1, 37.8, 56.9]. Tendo esses valores, faça um código que gere uma lista contendo o percentual de crescimento de bactérias por dia, comparando o número de bactérias em cada dia com o número de bactérias do dia anterior. Dica: para calcular o percentual de crescimento usamos a seguinte equação: 100 * (amostra_atual - amostra_passada) / (amostra_passada).
bacterias = [1.2, 2.1, 3.3, 5.0, 7.8, 11.3, 16.6, 25.1, 37.8, 56.9]

percentuais_crescimento = []

for i in range(1, len(bacterias)):
    amostra_passada = bacterias[i - 1]
    amostra_atual = bacterias[i]

    crescimento = 100 * (amostra_atual - amostra_passada) / amostra_passada
    percentuais_crescimento.append(crescimento)

for i, crescimento in enumerate(percentuais_crescimento, start=2):
    print(f"Dia {i}: {crescimento:.2f}%")
  1. Para uma seleção de produtos alimentícios, precisamos separar o conjunto de IDs dados por números inteiros sabendo que os produtos com ID par são doces e os com ID ímpar são amargos. Monte um código que colete 10 IDs. Depois, calcule e mostre a quantidade de produtos doces e amargos.
doces = 0
amargos = 0

for i in range(10):
    produto_id = int(input(f"Digite o ID do {i + 1}º produto: "))

    if produto_id % 2 == 0:
        doces += 1
    else:
        amargos += 1

print(f"Quantidade de produtos doces: {doces}")
print(f"Quantidade de produtos amargos: {amargos}")
  1. Desenvolva um programa que informa a nota de um(a) aluno(a) de acordo com suas respostas. Ele deve pedir a resposta desse(a) aluno(a) para cada questão e é preciso verificar se a resposta foi igual ao gabarito. Cada questão vale um ponto e existem as alternativas A, B, C ou D.

Gabarito da prova:
01 - D
02 - A
03 - C
04 - B
05 - A
06 - D
07 - C
08 - C
09 - A
10 - B

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

nota = 0

for i in range(10):
    resposta = input(f"Digite a resposta da questão {i + 1:02d} (A, B, C ou D): ").upper().strip()

    while resposta not in ["A", "B", "C", "D"]:
        print("Resposta inválida. Digite apenas A, B, C ou D.")
        resposta = input(f"Digite novamente a resposta da questão {i + 1:02d}: ").upper().strip()

    if resposta == gabarito[i]:
        nota += 1

print(f"A nota final do(a) aluno(a) foi: {nota}/10")
  1. Um instituto de meteorologia deseja fazer um estudo de temperatura média de cada mês do ano. Para isso, você precisa fazer um código que colete e armazene essas temperaturas médias em uma lista. Depois, calcule a média anual das temperaturas e mostre todas as temperaturas acima da média anual e em que mês elas ocorreram, mostrando os meses por extenso (Janeiro, Fevereiro, etc.).
meses = [
    "Janeiro", "Fevereiro", "Março", "Abril",
    "Maio", "Junho", "Julho", "Agosto",
    "Setembro", "Outubro", "Novembro", "Dezembro"
]

temperaturas = []

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

media_anual = sum(temperaturas) / len(temperaturas)

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

print("\nTemperaturas acima da média anual:")

for i in range(len(temperaturas)):
    if temperaturas[i] > media_anual:
        print(f"{meses[i]}: {temperaturas[i]:.2f}°C")
  1. Uma empresa de e-commerce está interessada em analisar as vendas dos seus produtos. Os dados das vendas foram armazenados em um dicionário:

{'Produto A': 300, 'Produto B': 80, 'Produto C': 60,
'Produto D': 200, 'Produto E': 250, 'Produto F': 30}
Escreva um código que calcule o total de vendas e o produto mais vendido.

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

# Calcular total de vendas
total_vendas = sum(vendas.values())

# Encontrar o produto mais vendido
produto_mais_vendido = max(vendas, key=vendas.get)

print(f"Total de vendas: {total_vendas}")
print(f"Produto mais vendido: {produto_mais_vendido}")
print(f"Quantidade vendida: {vendas[produto_mais_vendido]}")
1 resposta
solução!

Olá, Cássio. Como vai?

Parabéns pela excelente resolução de todos os exercícios do desafio! Seus códigos demonstraram um ótimo domínio sobre estruturas de repetição (for e while), listas, dicionários e manipulação de strings. Você aplicou ótimas práticas, como o método .upper().strip() para tratar as entradas do usuário no exercício do gabarito e o uso da função max() com o argumento key para encontrar a chave de maior valor no dicionário.

Para enriquecer ainda mais o seu projeto, trago algumas observações técnicas e pequenas melhorias de boas práticas em Python que podem deixar seus códigos ainda mais elegantes:


Ajuste de Sintaxe no Desafio 1

No seu código do crescimento bacteriano, ocorreu apenas um pequeno erro de digitação na quebra de linha ao colar o código no fórum: o for ficou colado no [].

  • Além disso, uma forma muito elegante e usada no mercado para comparar elementos vizinhos em uma lista é utilizar a função zip(). Veja como o código fica limpo:
bacterias = [1.2, 2.1, 3.3, 5.0, 7.8, 11.3, 16.6, 25.1, 37.8, 56.9]
percentuais_crescimento = []

# O zip combina a lista original com ela mesma saltando o primeiro elemento
for passada, atual in zip(bacterias, bacterias[1:]):
    crescimento = 100 * (atual - passada) / passada
    percentuais_crescimento.append(crescimento)

for i, crescimento in enumerate(percentuais_crescimento, start=2):
    print(f"Dia {i}: {crescimento:.2f}%")

Otimização no Desafio 4 (Média de Temperaturas)

No seu último laço for, você utilizou um loop baseado em índices (range(len(temperaturas))). No Python, sempre que precisamos percorrer duas listas de mesmo tamanho simultaneamente, a boa prática recomendada é utilizar a função zip(). Isso evita a necessidade de acessar os elementos por colchetes [i]:

print("\nTemperaturas acima da média anual:")
for mes, temp in zip(meses, temperaturas):
    if temp > media_anual:
        print(f"{mes}: {temp:.2f}°C")

Destaque para o Desafio 5 (Dicionários)

A sua solução utilizando max(vendas, key=vendas.get) foi perfeita! Muitas pessoas acabam fazendo loops complexos para descobrir a maior chave, e a sua abordagem com funções nativas do Python foi extremamente performática e limpa.

Continue com esse excelente ritmo de estudos e aplicando essa lógica refinada nos próximos módulos!

Espero que possa ter lhe ajudado!