Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

pratica de estrutura de dados

segue a resolução, fiz bem simples por conta da rotina.

avisos:
1- Usei recursos que aprendi tanto no curso quanto no livro:"python para data science e machine learning descomplicado."
2-Usei IA (claude) para me ajudar na lógica se estva seguindo o caminho de raciocínio correto e na interpretação de algumas questões.

questão 1:
Faça um programa que tenha a seguinte lista contendo os valores de gastos de uma empresa de papel [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08]. Com esses valores, faça um programa que calcule a média de gastos. Dica, use as funções built-in sum() e len().

valores_mensais = {2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08}
sum(valores_mensais)/len(valores_mensais)

Questão 2
Com os mesmos dados da questão anterior, defina quantas compras foram acima de 3000 reais e calcule a porcentagem quanto ao total de compras.

valores_mensais = {2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08}
contador = 0
for i in valores_mensais:
  if i > 3000:
    contador +=1

porcentagem = (contador / len(valores_mensais)) * 100

print(len(valores_mensais),porcentagem)

Questão 3
Faça um código que colete em uma lista 5 números inteiros quaisquer e imprima a lista. Exemplo: [1,4,7,2,4].

N = []

for i in range(0,5):
  n= int(input('Digite um número: '))
  N.append(n)

print(N)



esse aqui demorou para eu entender o enunciado 

Questão 4
Colete novamente 5 inteiros e imprima a lista em ordem inversa à enviada.

N = []

for i in range(0,6):
  n= int(input('Digite um número: '))
  N.append(n)

print(f'{N[::-2]}')

aqui testei o metodo de pular o numero em uma sequencia, vi em um livro sobre python que estava lendo

Questão 5
Faça um programa que, ao inserir um número qualquer, criará uma lista contendo todos os números primos entre 1 e o número digitado.

numero = int(input('Digite um número: '))
lista_primo = []

for n in range (2, numero + 1):
  primo = True #primo é verdadeiro
  for i in range (2, n):
    if (n%i == 0): #Se a divisão do elemento N por elemento I for exata, esse número não é primo
      primo = False 
      break 
  if primo: 
    lista_primo.append(n) #Cada N digitado será um valor primo
print(lista_primo)

Questão 6
Escreva um programa que peça uma data informando o dia, mês e ano e determine se ela é uma data 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: '))

valida = True 
if mes < 1 or mes > 12:
  valida = False 
else:
  if mes == 2:
    if (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0): 
      dia_fevereiro = 29 
    else: 
      dia_fevereiro = 28 
      if dia < 1 or dia > dia_fevereiro:
        valida = False 
        print('Data Inválida.')

  elif mes == [1,3,5,7,8,10,12]:
    dia_mensal = 31 
    if dia < 1 or dia > dia_mensal:
      valida = False
  elif mes == [4,6,9,11]:
    dia_mensal = 30 
    if dia < 1 or dia > dia_mensal:
      valida = False

if valida:
  print (f'{dia}/{mes}/{ano} é valido')
else: 
  print (f'{dia}/{mes}/{ano} não é valido')
  
  esse foi o mais fácil

Questão 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 multiplicadas por dia, com base em um processo de duplicação diária 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).

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

for i in range(1, len(valores)):
  amostra_atual = valores[i]
  amostra_passada= valores[i-1]
  percentual = 100 * (amostra_atual - amostra_passada) / (amostra_passada)
  crescimento.append(percentual)
print(crescimento)

Questão 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.

doce = 0
amargo = 0
for p in range (1 , 11): 
  iD = int(input('Digite o ID do produto: '))
  if iD % 2 == 0:
    doce += 1 
  else: 
    amargo += 1 
  
print(f'A quantidade de doces é: {doce}')
print(f'A quantidade de amargo é: {amargo}')    

vou continuar as questões no comentários

1 resposta

Questão 9
Desenvolva um programa que informa a nota de um aluno de acordo com suas respostas. Ele deve pedir a resposta de um aluno para cada questão e é preciso verificar se a resposta foi igual ao gabarito. Cada questão vale um ponto e existem alternativas: A, B, C ou D.

lista_gabrito = ['D','A','C','B','A','D','C','C','A','B']
nota = 0 
for i in range(10): 
  resposta = input(f'Digite sua resposta {i + 1}:')
  if resposta == lista_gabrito[i]:
    nota +=1
print(f'sua nota foi: {nota}')

Questão 10
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.

temperaturas_anual = []
for i in range(12):
  temperatura = float(input(f'Digite a temperatura do mês {i+1}: '))
  temperaturas_anual.append(temperatura)

media_t = sum(temperaturas_anual)/12 

print(media_t)

Questão 11
Uma empresa de e-commerce está interessada em analisar as vendas dos seus produtos. Os dados das vendas foram armazenados em um dicionário:

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

produtos_vendidos = {'Produto A': 300, 'Produto B': 80, 'Produto C': 60, 'Produto D': 200, 'Produto E': 250, 'Produto F': 30}
total_vendidos = sum(produtos_vendidos.values())
print(total_vendidos)

produto_máximo = max(produtos_vendidos, key=produtos_vendidos.get)

print(produto_máximo)


Aqui usei o metodo max() para facilitar.

Questão 12
Uma pesquisa de mercado foi feita para decidir qual design de uma marca infantil mais agrada crianças. A pesquisa foi feita e o votos computados podem ser observados abaixo:
Adapte os dados fornecidos a você para uma estrutura de dicionário e a partir dele, informe o design vencedor e a porcentagem de votos recebidos.

votos = {'design 1': 1334, 'design 2': 982, 'design 3': 1751,'design 4': 210,'design 5': 1811}
vencedor = max(votos, key=votos.get)
porcentagem = votos[vencedor]/sum(votos.values())*100
print(vencedor)
print(f'{porcentagem:.2f}')

Questão 13
Os funcionários de um setor da empresa que você trabalha vão receber um abono correspondente a 10% do seu salário devido ao ótimo desempenho do time. O setor financeiro solicitou sua ajuda para a verificação das consequências financeiras que esse abono irá gerar nos recursos. Assim, foi encaminhada para você uma lista com os salários que receberão o abono: [1172, 1644, 2617, 5130, 5532, 6341, 6650, 7238, 7685, 7782, 7903]. O abono de cada funcionário não pode ser inferior a 200. Em código, transforme cada um dos salários em chaves de um dicionário e o abono de cada salário no elemento. Depois, informe o total de gastos com o abono, quantos funcionários receberam o abono mínimo e qual o maior valor de abono fornecido.

salario = [1172, 1644, 2617, 5130, 5532, 6341, 6650, 7238, 7685, 7782, 7903]
abono = {}
qtd_abono = 0
for s in salario: 
  valor_abono = s * 0.1
  if valor_abono < 200: 
    valor_abono = 200
    qtd_abono +=1 
  abono[s] = valor_abono

total_gasto = sum(abono.values())
valor_maximo = max(abono.values())

print(qtd_abono)
print(total_gasto)
print(valor_maximo)

Questão muito chata

Questão 14
Uma equipe de cientistas de dados está estudando a diversidade biológica em uma floresta. A equipe fez a coleta de informações sobre o número de espécies de plantas e animais em cada área da floresta e armazenaram essas informações em um dicionário. Nele, a chave descreve a área dos dados e os valores nas listas correspondem às espécies de plantas e animais nas áreas, respectivamente.
Escreva um código para calcular a média de espécies por área e identificar a área com a maior diversidade biológica. Dica: use as funções built-in sum() e len().

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

for area, especies in Area.items():
  media = sum(especies) / len(especies)
  print(f'{area}: a média é {media:.2f}\n')

maior = max(Area, key=lambda a: sum(Area[a]))
print(maior)

Questão 15
O setor de RH da sua empresa te pediu uma ajuda para analisar as idades dos funcionários de 4 setores da empresa. Para isso, ele te forneceu os seguintes dados:

idades = {'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]}
todas_idades = []

for setor, i in idades.items(): 
  media_setor = sum(i) / len(i)
  print(media_setor)
  todas_idades += i 

media_geral = sum(todas_idades) / len(todas_idades)
print(media_geral)