3
respostas

[Projeto] Atividade prática da aula 5: Estruturas de dados.

Boa noite, pessoal! Essas última semanas foram corridas mas finalmente tive tempo de realizar os exercícios! :)

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().

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

media_gastos = sum(gastos_empresa) / len(gastos_empresa)

print(f'A média de gastos é: R${media_gastos:.2f}')

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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

gasto_acima = 0
valor_avaliado = 3000.00

for gasto in gastos_empresa:
  if gasto > valor_avaliado:
    gasto_acima += 1

percentual = (gasto_acima / len(gastos_empresa)) * 100
print(f'Foram realizadas {gasto_acima} compras acima de R${valor_avaliado:.2f}.')
print(f'Isso representa {percentual:.2f}% do total de compras.')

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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].

VERSÃO 1:

lista = []
while len(lista) < 5:
  numero = int(input('Digite um número inteiro: '))
  lista.append(numero)
print(lista)

VERSÃO 2:

lista = []
for contador in range(5):
  numero = int(input('Digite um número inteiro: '))
  lista.append(numero)
print(lista)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Colete novamente 5 inteiros e imprima a lista em ordem inversa à enviada.

print(lista[::-1])

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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

numero_limite = int(input('Digite um número inteiro: '))
lista_primos = []

# Vai checar no 2 até o número digitado -1
for numero in range(2, numero_limite):
  primo = True
  for divisor in range(2, numero): # Pega o número atual do laço e testa
    if numero % divisor == 0:
      primo = False
      break
  if primo:
    lista_primos.append(numero)

print(f'Lista de primos entre 1 e {numero_limite}: {lista_primos}')

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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: '))

lista_31_dias = [1, 3, 5, 7, 8, 10, 12]
lista_30_dias = [4, 6, 9, 11]
data_valida = True

if mes >= 1 and mes <= 12 and dia > 0: # if 1 <= mes <= 12:
  if mes in lista_30_dias:
    if dia > 30:
      data_valida = False
  elif mes in lista_31_dias:
    if dia > 31:
      data_valida = False
  else:
    if (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0):
      if dia > 29:
        data_valida = False
    else:
      if dia > 28:
        data_valida = False

  if data_valida:
    print('Data válida!')
  else:
    print('Data inválida!')
else :
  print('Data inválida!')

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

CÁLCULO DE BISSEXTO:

ano = int(input('Digite o ano: '))

if ano % 4 == 0 and ano % 100 != 0 or ano % 400 == 0:
  bissexto = True
else:
  bissexto = False

if bissexto:
  print('É bissexto!')
else:
  print('Não é bissexto!')

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
3 respostas

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).

multiplicacao_por_dia = [1.2, 2.1, 3.3, 5.0, 7.8, 11.3, 16.6, 25.1, 37.8, 56.9]
percentual_crescimento = []
total_de_dias = len(multiplicacao_por_dia)
percentual = 0
amostra_atual = 1
amostra_passada = 0

for bacteria in range(total_de_dias):
  if bacteria == total_de_dias - 1:
    break
  else:
    percentual = ((multiplicacao_por_dia[amostra_atual] - multiplicacao_por_dia[amostra_passada]) / multiplicacao_por_dia[amostra_passada]) * 100
    percentual_crescimento.append(float(f"{percentual:.2f}"))
    amostra_atual += 1
    amostra_passada += 1

print(f'Percentual de crescimento: {percentual_crescimento}')

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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.

produtos = []
# Prefiri listas caso eu queira mostrar quais são os doces e amargos digitados
doces = []
amargos = []
limite = 10
for contador in range(limite):
  produto = int(input('Digite o ID do produto: '))
  produtos.append(produto)
  if produto % 2 == 0:
    doces.append(produto)
  else:
    amargos.append(produto)

produtos.sort()
# Também posso usar o limite
print(f'{len(produtos)} IDs foram digitados: {produtos}\nTotal de doces: {len(doces)}\nTotal de amargos: {len(amargos)}')

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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 da prova:

01 - D
02 - A
03 - C
04 - B
05 - A
06 - D
07 - C
08 - C
09 - A
10 - B

gabarito = {1: 'D',
            2: 'A',
            3: 'C',
            4: 'B',
            5: 'A',
            6: 'D',
            7: 'C',
            8: 'C',
            9: 'A',
            10: 'B'}
respostas = []
alternativas = ['A', 'B', 'C', 'D']

print('Confira sua nota colocando as alternativas marcadas na prova: A, B, C ou D.')
for contador in range(10):
  resposta = input(f'Digite a resposta da {contador + 1}º questão: ').upper().strip()
  while resposta not in alternativas:
    print('Por favor, digite uma alternativa válida para computar sua nota.')
    resposta = input(f'Digite a resposta da {contador + 1}º questão: ').upper().strip()
  respostas.append(resposta)

nota = 0
indice = 0
for alternativa in gabarito.values():
  if respostas[indice] == alternativa:
    nota += 1
  indice += 1

print(f'Sua nota é: {nota}')

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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']
temperaturas = []

for contador in range(12):
  temperatura = float(input(f'Digite a temperatura média do mês de {meses[contador]}: '))
  temperaturas.append(temperatura)
media_anual = sum(temperaturas) / len(temperaturas)

print(f'A média anual é: {media_anual:.2f}°C\nMeses com temperaturas acima da média:')
mes = 0
for valor in temperaturas:
  if valor > media_anual:
    print(f'{meses[mes]} com {valor}°C')
  mes +=1

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

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())
quantidade_mais_vendida = 0
for produto, venda in vendas.items():
  if venda > quantidade_mais_vendida:
    quantidade_mais_vendida = venda
    produto_mais_vendido = produto

print(f'Total em vendas: R${total_vendas}\nProduto mais vendido: {produto_mais_vendido} - R${quantidade_mais_vendida}')

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Uma pesquisa de mercado foi feita para decidir qual design de marca infantil mais agrada as crianças. A pesquisa foi feita e o votos computados podem ser observados abaixo:

'''
Tabela de votos da marca

Design 1 - 1334 votos
Design 2 - 982 votos
Design 3 - 1751 votos
Design 4 - 210 votos
Design 5 - 1811 votos
'''

Adapte os dados fornecidos para uma estrutura de dicionário. A partir dele, informe o design vencedor e a porcentagem de votos recebidos.

tabela_votos = {'Design 1': 1334,
                'Design 2': 982,
                'Design 3': 1751,
                'Design 4': 210,
                'Design 5': 1811}

total_votos = 0
votos_vencedor = 0
for design in tabela_votos.keys():
  total_votos += tabela_votos[design]
  if tabela_votos[design] > votos_vencedor:
    votos_vencedor = tabela_votos[design]
    design_vencedor = design

percentual_vencedor = (votos_vencedor / total_votos) * 100

print(f'VENCEDOR\n{design_vencedor} com {votos_vencedor} votos! ({percentual_vencedor:.2f}%)')

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

As pessoas colaboradoras de um setor da empresa que você trabalha vão receber um abono correspondente a 10% do 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 colaborador(a) 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(as) colaboradores(as) receberam o abono mínimo e qual o maior valor de abono fornecido.

salarios = [1172, 1644, 2617, 5130, 5532, 6341, 6650, 7238, 7685, 7782, 7903]
salario_abono = {}
total_abono = 0
abono_minimo = 0
maior_abono = 0

for salario in salarios:
  abono = (10 / 100) * salario
  if abono < 200:
    abono = 200
    abono_minimo += 1
  if abono > maior_abono:
    maior_abono = abono
  salario_abono[salario] = abono
  total_abono += abono

print(f'Total de gastos com abono: R${total_abono:.2f}\nQuantidade de colaboradores que receberam o mínimo (R$200): {abono_minimo}\nMaior abono calculado: R${maior_abono:.2f}')

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Nessa questão eu não havia notado que a instrutora pediu a média das médias. Acabei fazendo a média geral!

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 dessa floresta e armazenou 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.

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

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().

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

maior_diversidade = 0
total_especies = 0
for area in estudo_especies:
  if sum(estudo_especies[area]) > maior_diversidade:
    maior_diversidade = sum(estudo_especies[area])
    maior_area = area
  total_especies += sum(estudo_especies[area])
media_por_area = total_especies / len(estudo_especies.keys())

print(f'Média de espécies por área: {media_por_area:.2f}\n{maior_area} é a que possui maior diversidade, contendo {maior_diversidade} espécies!')

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O setor de RH da sua empresa te pediu uma ajuda para analisar as idades de colaboradores(as) de 4 setores da empresa. Para isso, foram fornecidos os seguintes dados:

{'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]}

Sabendo que cada setor tem 10 colaboradores(as), construa um código que calcule a média de idade de cada setor, a idade média geral entre todos os setores e quantas pessoas estão acima da idade média geral.

idade_setores = {'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]}
print('MÉDIA DE IDADES')
media_setor = 0
idade_total = 0
total_funcionarios = 0         
for setor, idades in idade_setores.items():
  media_setor = sum(idades) / len(idades)
  print(f'{setor}: {media_setor} anos.')
  idade_total += sum(idades)
  total_funcionarios += len(idades)
media_idades = idade_total / total_funcionarios
idade_acima = 0
for idades in idade_setores.values():
  for idade in idades:
    if idade > media_idades:
      idade_acima += 1
print(f'A média idade na empresa é de {media_idades:.2f} anos.\n{idade_acima} colaboradores estão com idade acima da média!')

Insira aqui a descrição dessa imagem para ajudar na acessibilidade