1
resposta

[Projeto] Desafio: hora da prática (parte 6)

Boa tarde,

Seguem os códigos solicitados na atividade proposta "Desafio: hora da prática".

Aquecendo na programação
6. Escreva um programa que peça uma data informando o dia, mês e ano e determine se ela é válida para uma análise.

dia = int(input("Digite o dia: "))
mes = int(input("Digite o mês: "))
ano = int(input("Digite o ano: "))

data_valida = False

if mes in [1, 3, 5, 7, 8, 10, 12]:
    if 1 <= dia <= 31:
        data_valida = True
elif mes in [4, 6, 9, 11]:
    if 1 <= dia <= 30:
        data_valida = True
elif mes == 2:
    if (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0):
        if 1 <= dia <= 29:
            data_valida = True
    elif 1 <= dia <= 28:
        data_valida = True

if data_valida:
    print(f"A data {dia}/{mes}/{ano} é válida.")
else:
    print("Data inválida.")

Momento dos projetos
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. 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]
crescimentos = []

for i in range(1, len(bacterias)):
    atual = bacterias[i]
    passada = bacterias[i-1]
    percentual = 100 * (atual - passada) / passada
    crescimentos.append(f"{percentual:.2f}%")

print(f"Percentuais de crescimento diário: {crescimentos}")
  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.
ids = []
doces = 0
amargos = 0

for i in range(10):
    id_prod = int(input(f"Digite o ID do {i+1}º produto: "))
    ids.append(id_prod)
    if id_prod % 2 == 0:
        doces += 1
    else:
        amargos += 1
print(f"Quantidade de produtos doces (par): {doces}")
print(f"Quantidade de produtos amargos (ímpar): {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 = ["D", "A", "C", "B", "A", "D", "C", "C", "A", "B"]
nota = 0

print("--- Início da Correção ---")
for i in range(len(gabarito)):
    resposta = input(f"Resposta da questão {i+1}: ").upper()
    if resposta == gabarito[i]:
        nota += 1

print(f"O(a) aluno(a) acertou {nota} questões e sua nota final é {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.).
meses = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"]
temp_medias = []

for mes in meses:
    temp = float(input(f"Digite a temperatura média de {mes}: "))
    temp_medias.append(temp)
media_anual = sum(temp_medias) / len(temp_medias)

print(f"\nMédia anual: {media_anual:.2f}°C")
print("Meses com temperatura acima da média:")
for i in range(12):
    if temp_medias[i] > media_anual:
        print(f"{meses[i]}: {temp_medias[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}. 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}

total_vendas = sum(vendas.values())
mais_vendido = max(vendas, key=vendas.get)
print(f"Total de vendas: {total_vendas}")
print(f"Produto mais vendido: {mais_vendido}")
1 resposta

Olá, João! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de condicionais para validar diferentes meses, utilizou muito bem operadores lógicos para tratar anos bissextos e ainda compreendeu a importância da verificação de intervalos para garantir a consistência das datas.

Uma dica interessante para o futuro é aplicar a biblioteca datetime para simplificar a validação de datas. Assim:

from datetime import datetime

try:
    data = datetime(int(ano), int(mes), int(dia))
    print(f"A data {data.strftime('%d/%m/%Y')} é válida.")
except ValueError:
    print("Data inválida.")

Isso faz com que o código fique mais enxuto e confiável, aproveitando recursos já prontos da linguagem.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!