## 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.
import datetime
# Dicionário com a quantidade de dias por mês
meses = {
'Janeiro': 31,
'Fevereiro': 28, # Fevereiro pode ser 28 ou 29 dependendo se é bissexto
'Março': 31,
'Abril': 30,
'Maio': 31,
'Junho': 30,
'Julho': 31,
'Agosto': 31,
'Setembro': 30,
'Outubro': 31,
'Novembro': 30,
'Dezembro': 31
}
# Solicita o ano, garantindo que tenha 4 dígitos
ano = input('Digite o ano (4 dígitos): ')
while len(ano) != 4 or not ano.isdigit(): # Verifica se o ano tem 4 dígitos e é um número
print("Ano inválido! O ano deve ter 4 dígitos.")
ano = input('Digite o ano (4 dígitos): ')
ano = int(ano)
# Verifica se o ano é bissexto para redefinir o mês de fevereiro
if (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0):
meses['Fevereiro'] = 29
# Solicita o mês, garantindo que tenha 2 dígitos e seja válido
mes = input('Digite o mês (2 dígitos): ')
while len(mes) != 2 or not mes.isdigit() or int(mes) < 1 or int(mes) > 12: # Verifica se o mês tem 2 dígitos e é válido
print("Mês inválido! O mês deve ter 2 dígitos e ser válido (1 a 12).")
mes = input('Digite o mês (2 dígitos): ')
mes = int(mes)
# Solicita o dia, garantindo que tenha 2 dígitos e seja válido para o mês
dia = input('Digite o dia (2 dígitos): ')
while len(dia) != 2 or not dia.isdigit(): # Verifica se o dia tem 2 dígitos e é um número
print("Dia inválido! O dia deve ter 2 dígitos.")
dia = input('Digite o dia (2 dígitos): ')
dia = int(dia)
# Verifica se o dia é válido para o mês
while dia < 1 or dia > meses[list(meses.keys())[mes - 1]]:
print(f"Dia inválido! O mês {mes} tem entre 1 e {meses[list(meses.keys())[mes - 1]]} dias.")
dia = input('Digite o dia (2 dígitos): ')
while len(dia) != 2 or not dia.isdigit(): # Verifica se o dia tem 2 dígitos
print("Dia inválido! O dia deve ter 2 dígitos.")
dia = input('Digite o dia (2 dígitos): ')
dia = int(dia)
# Verifica qual será o dia da semana
data = datetime.date(ano, mes, dia)
dias_da_semana = ['Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado', 'Domingo']
dia_da_semana = dias_da_semana[data.weekday()]
# Exibe o resultado final, garantindo que o dia, mês e ano sejam exibidos com 2 dígitos
print(f'A data {dia:02}/{mes:02}/{ano} é uma {dia_da_semana}.')
## 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).
coloniabac = [1.2, 2.1, 3.3, 5.0, 7.8, 11.3, 16.6, 25.1, 37.8, 56.9]
evolucaodia = { 'Dia 01' : coloniabac[0],
'Dia 02' : coloniabac[1],
'Dia 03' : coloniabac[2],
'Dia 04' : coloniabac[3],
'Dia 05' : coloniabac[4],
'Dia 06' : coloniabac[5],
'Dia 07' : coloniabac[6],
'Dia 08' : coloniabac[7],
'Dia 09' : coloniabac[8],
'Dia 10' : coloniabac[9]
}
# Evolução dia a dia em porcentagem
evolucaodia_porcentagem = {}
for i in range(1, len(coloniabac)):
evolucaodia_porcentagem[f'Dia {i+1}'] = ((coloniabac[i] - coloniabac[i-1]) / coloniabac[i-1]) * 100
print(f'Dia {i+1}: {evolucaodia_porcentagem[f"Dia {i+1}"]:.2f}%')
## 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.
docepar = []
salgadoimpar = []
for i in range(0, 10):
codigo = int(input('Digite o código do produto (2 digitos): '))
# Valida se o código está no intervalo correto
while codigo < 1 or codigo > 99:
print('Código inválido! Digite novamente.')
codigo = int(input('Digite o código do produto (2 digitos): '))
# Após a validação do código, classifica como doce ou salgado
if codigo % 2 == 0:
docepar.append(codigo)
else:
salgadoimpar.append(codigo)
# Total de doces
total_doces = len(docepar)
print('Total de doces: ', total_doces)
# Total de salgados
total_salgados = len(salgadoimpar)
print('Total de salgados: ', total_salgados)