1
resposta

Desafio: hora da prática

  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).
    RESPOSTA: # Lista de valores diários das bactérias
    bacterias = [1.2, 2.1, 3.3, 5.0, 7.8, 11.3, 16.6, 25.1, 37.8, 56.9]

#Lista para armazenar os percentuais de crescimento
lista_crescimento = []

#Percorre a lista começando do índice 1
for i in range(1, len(bacterias)):

# Calcula o percentual de crescimento
crescimento = 100 * (bacterias[i] - bacterias[i - 1]) / bacterias[i - 1]

# Adiciona o valor formatado com 2 casas decimais
lista_crescimento.append(f"{crescimento:.2f}%")

#Exibe os percentuais de crescimento
print(lista_crescimento)

  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.

RESPOSTA: # Variáveis
doces = 0
amargos = 0
#Laço de repetição
for i in range (10):
#Entrada de dados
id = int(input('Digite um número de ID: '))
if id % 2 == 0:
doces += 1
else:
amargos += 1
print(f'Existem {doces} produtos doces e {amargos} produtos 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.
    RESPOSTA: # Dados do gabarito
    gabarito = ['D', 'A', 'C', 'B', 'A', 'D', 'C', 'C', 'A', 'B']

#variável
nota = 0
for i in range(1, 11):
resposta = input(f'Digite a resposta da questão {i}: ')
if resposta.upper() == gabarito[i - 1]:
nota += 1
print(f'A nota do aluno é {nota}.')

  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.).
    RESPOSTA: # Lista de meses
    meses = [
    'Janeiro', 'Fevereiro', 'Março', 'Abril',
    'Maio', 'Junho', 'Julho', 'Agosto',
    'Setembro', 'Outubro', 'Novembro', 'Dezembro'
    ]

#Lista para armazenar temperaturas
temperaturas = []

#Coletando temperaturas
for i in range(12):

temperatura = float(
    input(f'Digite a temperatura média de {meses[i]}: ')
)

temperaturas.append(temperatura)

#Calculando média anual
media = sum(temperaturas) / len(temperaturas)

print(f'\nMédia anual: {media:.1f}°C')

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

#Verificando temperaturas acima da média
for i in range(12):

if temperaturas[i] > media:

    print(f'{meses[i]}: {temperaturas[i]}°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}
    RESPOSTA: # Dicionário de vendas
    vendas = {
    'Produto A': 300,
    'Produto B': 80,
    'Produto C': 60,
    'Produto D': 200,
    'Produto E': 250,
    'Produto F': 30
    }

#Variáveis
total_vendas = sum(vendas.values())
produto_mais_vendido = max(vendas, key=vendas.get)

#percorrendo o dicionário
for produto, quantidade in vendas.items():
if quantidade == max(vendas.values()):
produto_mais_vendido = produto
#Saída

print(f'Total de vendas: R${total_vendas}')
print(f'Produto mais vendido: {produto_mais_vendido}')

Escreva um código que calcule o total de vendas e o produto mais vendido.

1 resposta

Olá, Weydison. Como vai?

Parabéns pela resolução dos exercícios! Você demonstrou um excelente domínio das estruturas de dados fundamentais do Python, como listas, dicionários e laços de repetição (for), além de aplicar ótimas práticas de programação.

Gostaria de destacar alguns pontos muito positivos no seu código e trazer pequenas sugestões de boas práticas para o seu desenvolvimento:

1. Tratamento de Strings e Manipulação de Índices

No exercício do gabarito, o uso do .upper() foi uma excelente escolha para garantir que o programa funcione mesmo se o aluno digitar letras minúsculas. No exercício do crescimento bacteriano, a lógica do range(1, len(bacterias)) foi cirúrgica para evitar o erro de tentar acessar um índice negativo ou inexistente.

2. Otimização com Dicionários

No último exercício, você utilizou a função max(vendas, key=vendas.get) de forma brilhante para descobrir a chave com o maior valor direto no dicionário.

Como você já tinha guardado esse resultado, o laço for logo abaixo acabou ficando redundante. Veja como o seu código pode ser mais limpo e direto, removendo as linhas repetidas:

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

# Variáveis calculadas de forma direta
total_vendas = sum(vendas.values())
produto_mais_vendido = max(vendas, key=vendas.get)

# Saída direta
print(f'Total de vendas: R${total_vendas}')
print(f'Produto mais vendido: {produto_mais_vendido}')

3. Uma dica sobre formatação (Exercício do E-commerce)

No print do total de vendas, você adicionou o símbolo de R$, o que é ótimo para contextos financeiros. No entanto, o enunciado menciona apenas a "quantidade" de vendas e o dicionário traz números inteiros (provavelmente unidades vendidas). Se o objetivo do exercício for apenas contabilizar as unidades, remover o "R$" evita confusões na leitura dos dados.

Continue com esse excelente ritmo de estudos em Python para Dados!

Espero que possa ter lhe ajudado!