1
resposta

Praticando - Parte 2

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 s

Lista de crescimento das bactérias

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

Lista que irá armazenar as porcentagens de crescimento

porcentagem_crescimento = []

Vamos percorrer os índices de 1 a 9 para compararmos o valor atual com o passado

for i in range(1, len(bacterias_colonia)):
# seguimos o cálculo 100 * (amostra_atual - amostra_passada) / (amostra_passada)
porcentagem = 100 * (bacterias_colonia[i] - bacterias_colonia[i-1]) / (bacterias_colonia[i-1])
# adicionamos o resultado na lista porcentagem_crescimento
porcentagem_crescimento.append(porcentagem)

Resultado

print(f'Porcentagens de crescimento:\n{porcentagem_crescimento}')
Execução / Resultado
Plaintext
Porcentagens de crescimento:
[75.00000000000001, 57.142857142857125, 51.51515151515153, 56.0, 44.87179487179489, 46.90265486725664, 51.20481927710843, 50.59760956175297, 50.52910052910054]
Questão 8: Seleção de Produtos Alimentícios (Doces e Amargos)
Código
Python

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

Lista que vai receber os valores de IDs

ids = []

Variáveis contadoras de doces e amargos

doce = 0
amargo = 0

Criamos um laço que vai iterar 10 vezes para receber os 10 IDs

for i in range(0,10):
# Coletamos o ID e adicionamos o id na lista
ids.append(int(input(f'Digite o {i+1}º ID: ')))

Ler todos os elementos da lista ids e atribuir à id

for id in ids:
# Verificamos se os elementos são pares ou ímpares para fazer a contagem
if id % 2 == 0:
doce += 1
else:
amargo += 1

Resultado

print(f'Quantidade de produtos doces: {doce}')
print(f'Quantidade de produtos amargos: {amargo}')
Execução / Resultado
Plaintext
Digite o 1º ID: 3
Digite o 2º ID: 4
Digite o 3º ID: 6
Digite o 4º ID: 5
Digite o 5º ID: 76
Digite o 6º ID: 10
Digite o 7º ID: 46
Digite o 8º ID: 1
Digite o 9º ID: 90
Digite o 10º ID: 90
Quantidade de produtos doces: 7
Quantidade de produtos amargos: 3
Questão 9: Gabarito e Nota de Aluno
Código
Python

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

Gabarito da prova:

01 - D

02 - A

03 - C

04 - B

05 - A

06 - D

07 - C

08 - C

09 - A

10 - B

Inicializamos os dados

respostas = [] # Lista para receber as respostas

Lista de gabaritos

gabarito = ['D', 'A', 'C', 'B', 'A', 'D', 'C', 'C', 'A', 'B']
nota = 0 # Irá acumular a nota total

Recebemos as respostas do aluno

for i in range(0, 10):
respostas.append(input(f'Insira a resposta da questão {i + 1}: ').upper())

Verificamos se as respostas são iguais e adicionamos à nota

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

Exibindo nota final

print(f'Nota final: {nota}')
Execução / Resultado
Plaintext
Insira a resposta da questão 1: d
Insira a resposta da questão 2: a
Insira a resposta da questão 3: c
Insira a resposta da questão 4: b
Insira a resposta da questão 5: a
Insira a resposta da questão 6: d
Insira a resposta da questão 7: c
Insira a resposta da questão 8: c
Insira a resposta da questão 9: a
Insira a resposta da questão 10: b
Nota final: 10

1 resposta

Olá, Nicole. Como vai?

Mais uma sequência de resoluções brilhantes! É muito bom ver como você domina o controle de loops usando o range() e sabe aplicar funções de manipulação de strings (como o .upper()) para garantir que as entradas fiquem padronizadas antes de realizar as comparações de dados. Seus códigos estão muito organizados e fáceis de ler.

Gostaria de destacar um ponto importante sobre o resultado da Questão 7 e trazer soluções alternativas muito elegantes para as Questões 8 e 9 utilizando recursos nativos do Python. Vamos lá:

1. Lidando com as "sobras" nas casas decimais (Questão 7)

No console da primeira questão, você deve ter notado números longos como 75.00000000000001 ou 51.51515151515153. Isso ocorre pela forma como o computador calcula pontos flutuantes em binário.

Como boa prática para entregar os dados ao setor de análise de forma mais limpa, você pode usar a função embutida round() do Python diretamente no cálculo para limitar as casas decimais. Veja a modificação simples:

# O número 2 no final indica que queremos apenas duas casas decimais
porcentagem = round(100 * (bacterias_colonia[i] - bacterias_colonia[i-1]) / bacterias_colonia[i-1], 2)
porcentagem_crescimento.append(porcentagem)

2. Otimizando com Expressões Condicionais (Questão 8)

Sua separação de IDs entre pares (doces) e ímpares (amargos) está perfeita com o operador de módulo % 2 == 0.

Para deixar o código mais direto e praticar uma sintaxe limpa, você pode agrupar a contagem dentro de um único laço, sem precisar criar e armazenar uma lista extra de IDs se a sua única intenção for apenas contá-los.

doce = 0
amargo = 0

for i in range(10):
    id_produto = int(input(f'Digite o {i+1}º ID: '))
    # Estrutura condicional em uma única linha (Operador Ternário)
    if id_produto % 2 == 0:
        doce += 1
    else:
        amargo += 1

3. Simplificando Comparações com zip() (Questão 9)

Na questão do gabarito, você utilizou dois loops separados por índices numéricos. O Python oferece uma função fantástica chamada zip(), que serve para percorrer duas listas diferentes de mesmo tamanho ao mesmo tempo, comparando os itens diretamente de forma muito mais simples:

# Coleta de dados igual ao seu código
respostas = [input(f'Insira a resposta da questão {i + 1}: ').upper() for i in range(10)]

# Comparando de forma direta sem depender de índices de range
for resposta_aluno, resposta_gabarito in zip(respostas, gabarito):
    if resposta_aluno == resposta_gabarito:
        nota += 1

A sua linha de raciocínio lógico está afiadíssima e você tirou nota máxima (10 de 10) no teste da questão 9! Parabéns pelo progresso constante na formação de dados.

Espero que possa ter lhe ajudado!