2
respostas

[Projeto] hora da pratica 5

ola segue os codigos.

#Questão 1

lista_custo = [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08]
media = sum(lista_custo) / len(lista_custo)
print(f'A media dos gastos é {media}')

#Questão 2

lista_custo = [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08]
lista_3000 = []

for i in lista_custo:
  if i > 3000:
    lista_3000.append(i)

custo_total = sum(lista_custo)
custo_3000 = sum(lista_3000)
porcentagem = (custo_3000 / custo_total) * 100
porcentagem_formato = f"{porcentagem:.2f}"

print(f'Foram {len(lista_3000)} compras acima de 3000 reais, com uma porcentagem de {porcentagem_formato} do valor Total de compras')

#Questão 3

lista_1 = []

for i in range(5):
    valor = int(input('Digite um numero inteiro para a lista '))
    lista_1.append(valor)

print(f' a lista conte os seguintes valores {lista_1}')
lista_1.sort()
print(f' A lista ordenada em crescente fica assim: {lista_1}')

#Questão 4

lista_1 = []

for i in range(5):
  valor = int(input('Digite um numero inteiro para a lista '))
  lista_1.insert(0,valor)

print(f' a lista conte os seguintes valores {lista_1}')
lista_1.reverse()
print(f' A lista ordenada em decrescente fica assim: {lista_1}')

#Questão 5

numero = int(input('Digite um numero, para descobriemos os numeros primos até ele: '))
lista_primos = []
lista_naoprimos = []

for num in range(2, numero + 1):
    eh_primo = True
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            eh_primo = False
            lista_naoprimos.append(num)
            break
    if eh_primo:
       lista_primos.append(num)

print(f'Os números primos entre 1 e {numero} são: {lista_primos}')

#Questão 6 - versão 1

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

valida = True

# Primeiro, validações básicas
if mes < 1 or mes > 12 or dia < 1:
    valida = False
else:
# Verificação para fevereiro (considerando ano bissexto)
    if mes == 2:
        bissexto = (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0)
        if bissexto:
            if dia > 29:
                valida = False
        else:
            if dia > 28:
                valida = False
# Meses com 31 dias
    elif mes in [1, 3, 5, 7, 8, 10, 12]:
        if dia > 31:
            valida = False
# Meses com 30 dias
    elif mes in [4, 6, 9, 11]:
        if dia > 30:
            valida = False

# Resultado final
if valida:
    print(f'A data {dia:02}/{mes:02}/{ano} é uma data válida!')
else:
    print('Data inválida!')

# Versão 2 - indicado pelo chatGpt

from datetime import datetime

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

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

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

for i in range(1, len(col_bac_cres)):
    percentual_crescimento = 100 * (col_bac_cres[i] - col_bac_cres[i - 1]) / col_bac_cres[i - 1]
    col_bac_cres_perc.append(percentual_crescimento)

form_col_bac_cres_perc = [f"{x:.2f}" for x in col_bac_cres_perc]
print(form_col_bac_cres_perc)

#Questão 8

lista_id = []
doces = []
amargos = []

for i in range(10):
  if entrada_id % 2 == 0:
    doces.append(entrada_id)
    lista_id.insert(1,entrada_id)
    entrada_id = int(input('insira o ID do produto: '))
  else:
    amargos.append(entrada_id)
    lista_id.insert(1,entrada_id)
    entrada_id = int(input('insira o ID do produto: '))

print(lista_id)
print(f'Foram {len(doces)} produtos doces')
print(f'Foram {len(amargos)} produtos amargos')

#Questão 9 

dict_gabarito = {1:'D', 2:'A', 3:'C', 4:'B', 5:'A', 6:'D', 7:'C', 8:'C', 9:'A', 10:'B'}
dict_respostas = {}

# Coleta das respostas do aluno
for i in range(1, 11):
    resposta = input(f'Digite a resposta da questão {i}: ')
    dict_respostas[i] = resposta

# Conversão para maiscula
dict_respostas_upper = {k: v.upper() for k, v in dict_respostas.items()}
print("Respostas do aluno:", dict_respostas_upper)

# Processamento do resultado
acertos = 0
erros = 0

for i in dict_respostas_upper:
    if dict_respostas_upper[i] == dict_gabarito[i]:
        acertos += 1
    else:
        erros += 1

# Saida e nota final
print(f'\nTotal de acertos: {acertos}')
print(f'Total de erros: {erros}')
print(f'Nota final: {acertos} pontos')

segue abaixo as demais questões

2 respostas

continuando

#Questão 10

#dados iniciais
temp_meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro']
temp_media = []
#captura das medias
for i in range(1,13):
  media_temp = float(input(f'Digite a temperatura média do mes de {temp_meses[i-1]}: '))
  temp_media.append(media_temp)
#execucao da media
media_anual = sum(temp_media) / len(temp_media)

dict_temp_anual = {}
#Processamento
for i in range(1,12):
  if temp_media[i-1] > media_anual:
    dict_temp_anual[temp_meses[i-1]] = temp_media[i-1]
#Saidas
print(f'A media anual foi de {media_anual}')
print('Os meses que tiveram temperaturas acima da média anual foram:')
print(dict_temp_anual)

#Questão 11

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(f'O total de vendas foi de {total_vendas}')
print(f'O produto mais vendido foi {produto_mais_vendido}')

#Questão 12

tabela_geral = [
    'Design 1 - 1334 votos',
    'Design 2 - 982 votos', 
    'Design 3 - 1751 votos',
    'Design 4 - 210 votos',
    'Design 5 - 1811 votos'
]

tabela_dic = {}

for item in tabela_geral:
    chave, valor = item.split(' - ')
    votos = int(valor.split()[0])  # Pega só o número antes da palavra 'votos'
    tabela_dic[chave] = votos

# Ordenar por número de votos (do maior para o menor)
tabela_ordenada = dict(sorted(tabela_dic.items(), key=lambda x: x[1], reverse=True))
total_votos = sum(tabela_ordenada.values())
porcentagem_votos = {}

# Mostrar resultado ordenado
print("Ranking dos Designs por votos:")
for design, votos in tabela_ordenada.items():
    print(f"{design}: {votos} votos")
    print(f"Porcentagem de votos: {votos / total_votos * 100:.2f}%")
    
#Questão 13 - essa daqui foi complicada,,,

lista_salarios = [1172, 1644, 2617, 5130, 5532, 6341, 6650, 7238, 7685, 7782, 7903]
dict_salario_abono = {}

total_abonos = 0
minimo_count = 0
maior_abono = 0

for salario in lista_salarios:
    abono = round(salario * 0.1, 2)
    # Se o abono calculado for menor que 200, atribui o valor mínimo
    if abono < 200:
        abono = 200
        minimo_count += 1
    # Verifica se o abono atual é o maior
    if abono > maior_abono:
        maior_abono = abono
    total_abonos += abono
    # Insere no dicionário: chave = salário, valor = abono
    dict_salario_abono[salario] = abono

print("Dicionário de Salários e Abonos:")
print(dict_salario_abono)
print("\nTotal de abonos: R$", total_abonos)
print("Funcionários com abono mínimo (R$200):", minimo_count)
print(f"Maior abono: R$, {maior_abono:.2f}")

#Questão 14 - mesma coisa,, 

dados_brutos = {'Área Norte': [2819, 7236],
 'Área Leste': [1440, 9492],
 'Área Sul': [5969, 7496],
 'Área Oeste': [14446, 49688],
 'Área Centro': [22558, 45148]}

#Processamento

somas = {}

for area, valores in dados_brutos.items():
  soma = (sum(valores)/len(valores))
  somas[area] = soma
  print(f'{area}: {soma}')

maior_area = max(somas, key=somas.get)
print("\nÁrea com maior somatório:", maior_area, "com valor", somas[maior_area])

#Questão 15

idades_func = {'Setor A': [22, 26, 30, 30, 35, 38, 40, 56, 57, 65],
 'Setor B': [22, 24, 26, 33, 41, 49, 50, 54, 60, 64],
 'Setor C': [23, 26, 26, 29, 34, 35, 36, 41, 52, 56],
 'Setor D': [19, 20, 25, 27, 34, 39, 42, 44, 50, 65]}

for setor, idades in idades_func.items():
  media_setor = sum(idades) / len(idades)
  print(f'A media do setor {setor} é {media_setor}')

media_geral = sum(sum(idades) for idades in idades_func.values()) / sum(len(idades) for idades in idades_func.values())
print(f'A media geral é {media_geral}')

grupo_acima_media = sum(1 for idades in idades_func.values() for idade in idades if idade > media_geral)
print(f'Existem {grupo_acima_media} funcionarios acima da media geral')

segue os codigos, adimito que tive que recorrer varias vezes ao google e ao chatgpt para corrigir os codigos e ter ideias para colocar as coisas em pratica. mas sempre busquei montar os codigos, mesmo com erros, para entender o caminho.

Oi, Rony! Como vai?

Obrigada por compartilhar seu código com a comunidade Alura.

É ótimo ver que você está buscando corrigir e aprimorar seus códigos, mesmo com dificuldades! Usar ferramentas como o Google e o ChatGPT de forma consciente é uma ótima estratégia para otimizar seus estudos. Elas podem ser muito úteis para esclarecer dúvidas e acelerar o aprendizado, desde que você também busque entender o raciocínio por trás das soluções. Com o tempo, você vai perceber que a combinação de sua prática com o uso dessas ferramentas vai potencializar ainda mais o seu progresso.

💡 Dica: Para aprofundar um pouco sobre Data Science, recomendo ouvir o podcast 🎙️Caminhos no Data Science. Nele, os participantes discutem a importância da área de Data Science.

Espero que goste! Abraços e bons estudos!

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