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

projeto de função com retorno reescrito

## matéria: MATEMÁTICA

alunos = {
    'Guilherme': [8.5, 5.0, 7.0, 10],
    'Maria': [9.0, 8.5, 9.0, 9.8],
    'João': [7.4, 7.2, 6.2, 4.4],
    'André': [8.0, 9.5, 6.2, 8.0],      #Aqui recebi a lista
    'Carla': [4.6, 3.2, 7.2, 2.6],
    'Bruno': [6.3, 4.9, 2.5, 6.1],
    'Fernanda': [2.3, 5.5, 2.6, 2.7],
    'Lucas': [5.4, 8.6, 3.0, 3.8],
    'Patrícia': [7.0, 9.6, 6.6, 5.2],
    'Rafael': [9.8, 2.4, 8.9, 4.3]
}
def media(notas):
    return round(sum(notas)/len(notas), 2) #Aqui optei por fazer a função dos valores
def media_alunos(alunos):
  resultado = {}
  for nome, notas in alunos.items():
    m = media(notas)
    status = "Aprovado" if m >= 6 else "Reprovado" #status aprovado se m for maior que 6, se não, reprovou
    resultado [nome] = {'media' :m, 'status': status}  #Aqui pedi para que na lista alunos, foce atribuida as chaves nos resultados e valores nas chaves
    media_geral = round(sum(x['media'] for x in resultado.values()) / len(resultado), 2) #some cada item x da lista de valores de resultado e divida pela quantidade de items do resultado para achar a média
  return (resultado, media_geral)
def exibicao(resultados, media_geral):
    for aluno, dados in resultados.items():
        print(f'{aluno}: Média = {dados['media']} - status: {dados['status']}.')
    print(f'Média geral da turma: {media_geral}') #exibir
medias, geral = media_alunos(alunos)
exibicao(medias, geral)

Olá, Aqui está um projeto que fiz depois da aula de funções com retorno. Peço desculpas caso esteja difícil de entender, ainda sou iniciante na área e fui no calor do momento :)

Esse projeto eu meio que "roubei" da vídeo aula kkkk com as questões de notas e tals, pedi para o claude criar uma lista(um dicionário na verdade ja que tem chave-valor) e fui fazendo em uns 2 dias em horários livres. Espero que gostem.

aprendi algumas coisas, usei o claude para me ajudar em alguns comandos como na parte do status que eu não sabia que tinha como fazer esse tipo de condicional e na parte do resultado[nome] que eu não sabia que tinha como atribuir um dicionário assim.

Cara enfim, fiquei muito animado... esse é meu melhor projeto até agora e sinto cada vez mais minha evolução, e estou saciado cada vez mais aprender coisas na área de dados.

ultima coisa kkkk prometo. Ganhei o livro "data science para leigos" da minha namorada, estou achando o livro interessante, Vocês indicam?

1 resposta

Olá, Guilherme. Tudo bem com você?

Parabéns pelo empenho em praticar o projeto. É muito massa ver como você pegou o conceito da aula, adaptou para uma estrutura com dicionário e aplicou funções para manipular os dados de vários estudantes ao mesmo tempo. A divisão que você fez separando o cálculo da média, o processamento dos dados e a exibição em funções distintas deixa o fluxo do código bem organizado e legível.

Trabalhar com dados estruturados usando dicionários e manipular coleções em Python é um passo gigante para quem está começando na área de dados. Como uma dica para aprimorar ainda mais seus estudos, quando lidamos com estruturas de dicionários encadeados, podemos utilizar bibliotecas como o Pandas no futuro para transformar esses dados em tabelas visualmente mais fáceis de analisar.

Sobre o livro que você ganhou, ele é uma excelente recomendação para quem está começando. Ele traz uma visão geral muito boa sobre a área, explica os conceitos fundamentais sem pesar na matemática logo de início e ajuda a entender onde o Python se encaixa no dia a dia de um profissional de dados.

Parabéns pelo excelente trabalho e pela evolução. Continue compartilhando seus projetos por aqui, o fórum está sempre à disposição para o que precisar.

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