1
resposta

MOMENTO DOS PROJETOS - 01

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

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

crescimento = []

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

print("Percentual de crescimento por dia:")
print(crescimento)

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

ids = []

for i in range(10):
valor = int(input(f"Digite o {i+1}º ID (inteiro): "))
ids.append(valor)

doces = 0
amargos = 0

for id in ids:
if id % 2 == 0:
doces += 1
else:
amargos += 1

print("Lista de IDs:", ids)
print("Quantidade de produtos doces (pares):", doces)
print("Quantidade de produtos amargos (ímpares):", amargos)

9) 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 = ['D', 'A', 'C', 'B', 'A', 'D', 'C', 'C', 'A', 'B']

respostas = []

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

nota = 0
for i in range(10):
if respostas[i] == gabarito[i]:
nota += 1

print("Respostas do aluno:", respostas)
print("Nota final:", nota, "pontos")

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

temperaturas = []

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

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("\nTemperaturas médias:", temperaturas)
print("Média anual de temperaturas:", round(media_anual, 2))

print("\nMeses com temperatura acima da média anual:")
for i in range(12):
if temperaturas[i] > media_anual:
print(f"{meses[i]}: {temperaturas[i]}")

**11) Uma empresa de e-commerce está interessada em analisar as vendas dos seus produtos. Os dados das vendas foram armazenados em um dicionário: **

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)

print("Total de vendas:", total_vendas)
print("Produto mais vendido:", produto_mais_vendido, "com", vendas[produto_mais_vendido], "vendas")

12) Uma pesquisa de mercado foi feita para decidir qual design de marca infantil mais agrada as crianças.

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

total_votos = sum(votos.values())

design_vencedor = max(votos, key=votos.get)

percentual_vencedor = (votos[design_vencedor] / total_votos) * 100

print("Total de votos:", total_votos)
print("Design vencedor:", design_vencedor)
print("Percentual de votos recebidos: {:.2f}%".format(percentual_vencedor))

1 resposta

Olá, Penha. Como vai?

Parabéns pelo excelente desempenho e pela dedicação em trazer as resoluções de toda a segunda metade da lista de desafios práticos! É incrível ver o quão bem você domina as principais estruturas de dados do Python, transitando com naturalidade entre o uso de listas, laços for baseados em índices e em elementos, funções matemáticas agregadas como sum(), e dicionários utilizando chaves e valores.

Seus códigos estão com uma lógica perfeita, limpos e as respostas atendem com exatidão todas as regras de negócio pedidas em cada enunciado.

Para agregar ainda mais valor aos seus estudos e trazer algumas sugestões de boas práticas que você pode começar a aplicar nos seus próximos projetos em Python para análise de dados, analisei detalhadamente as suas resoluções:

1. Questões 7 e 10: Tratamento de Índices e Indentação

Na sua questão 7 (cálculo de crescimento de bactérias), você fez uma excelente escolha lógica ao iniciar o range(1, len(bacterias)) no índice 1. Como o cálculo exige a comparação com o dia anterior (i-1), começar do índice 0 faria o Python tentar buscar o índice -1, gerando um cálculo incorreto ou um erro de execução.

Apenas lembre-se de que, na hora de colar o código aqui no fórum, a formatação acabou deixando as linhas sem o recuo. No seu ambiente de desenvolvimento, mantenha sempre a indentação obrigatória do Python dentro dos blocos for e if, dessa forma:

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

2. Questões 11 e 12: O Poder dos Dicionários

A sua lógica nas questões 11 e 12 foi extremamente profissional. Utilizar max(vendas, key=vendas.get) para extrair diretamente a chave (nome do produto ou design) correspondente ao maior valor numérico do dicionário é uma das maneiras mais eficientes e fluidas de resolver esse problema em Python, evitando a necessidade de criar laços complexos para descobrir o maior valor manualmente.

3. Uma Dica de Evolução (Python Moderno)

Na questão 12, para exibir o percentual do vencedor formatado com duas casas decimais, você utilizou o método clássico .format():

print("Percentual de votos recebidos: {:.2f}%".format(percentual_vencedor))

Esse código funciona perfeitamente! Como sugestão de modernização, você pode padronizar o seu script utilizando as f-strings (que você já domina e aplicou muito bem nas questões 8, 9 e 10). O Python permite formatar as casas decimais diretamente dentro da f-string de forma muito simples. Veja o exemplo:

print(f"Percentual de votos recebidos: {percentual_vencedor:.2f}%")

Essa abordagem deixa a leitura do código mais limpa e mantém o padrão de escrita do início ao fim do seu programa.

Você demonstrou ter construído uma base de lógica de programação fortíssima e está mais do que pronta para avançar para as próximas etapas de manipulação de dados com bibliotecas como Pandas e NumPy. Continue com essa consistência fantástica nos estudos!

Espero que possa ter lhe ajudado!