Entrega do projeto guiado I da semana 5.#17
Entrega do projeto guiado I da semana 5.#17marinaoliv wants to merge 1 commit intoreprograma:mainfrom
Conversation
mayulabs
left a comment
There was a problem hiding this comment.
Oi Marina!
Fiz uma revisão de código (code review) para você e espero que você possa revisar seu projeto e colocar posteriormente mais coisas. Futuramente, se quiser complementar mais o sistema, você pode pensar em encapsular as funcionalidades, dando mais especifidade a função e dando responsabilidades únicas para ela.
Percebi que você não testou o código, e apesar da implementação, as funções não estão funcionando. Espero que você realmente tenha entendido o conteúdo, qualquer dúvida, estou por aqui.
Boa sorte e sucesso na sua jornada! ♥
Parabéns pelo trabalho!
| print("\nInsira os dados da aula! ") | ||
| nome = input("Nome da aluna:") | ||
| sobrenome = input("Sobrenome da aluna: ") | ||
| turma = input("Turma da aluna: ") | ||
| notas = obter_nota() | ||
| presenca = obter_presenca() | ||
| participacao = float(input("Nota de participação da aluna: ")) | ||
|
|
||
| salvar_dados_alunas(nome, sobrenome, turma, notas, presenca, participacao) | ||
|
|
||
| return nome |
There was a problem hiding this comment.
Ótima implementação, usou a estrutura que vimos em aula e fez um bom trabalho :)
| try: | ||
| nota = float(entrada) | ||
| notas.append(nota) | ||
| break | ||
| except ValueError: | ||
| print("Entrada inválida. Por favor, insira true ou false.") |
There was a problem hiding this comment.
Bom uso da validação para inserir a nota da aluna.
| for i in range(int(quantidade_aulas)): | ||
| while True: | ||
| entrada = input(f"Presença na aula {i + 1} (True/False): ") | ||
| if entrada.lower() == 'true': | ||
| presenca.append(True) | ||
| break | ||
| elif entrada.lower() == 'false': | ||
| presenca.append(False) | ||
| break | ||
| else: | ||
| print("Entrada inválida. Por favor, digite 'True' ou 'False'.") |
There was a problem hiding this comment.
Excelente implementação da obtenção de presença das alunas.
| for nome in dataset: | ||
| print(nome) |
There was a problem hiding this comment.
No requisito funcional, era esperado que a impressão dos nomes das alunas estivesse formatado. Do modo como está, ele está imprimindo a tupla de forma crua.
Sugestão:
| for nome in dataset: | |
| print(nome) | |
| for nome, sobrenome in dataset: | |
| print(f"{nome} {sobrenome}") |
| print("\nNão há alunas cadastradas.") | ||
|
|
||
| def consultar_faltas_aluna(): | ||
| nome_aluna = input("Insira o nome completo da aluna: ") |
There was a problem hiding this comment.
O recebimento do nome da aluna está incorreto, o que causa erro nesta e nas demais funções. Acredito que o projeto não foi testado de forma apropriada. Neste caso, o nome que estamos recebendo é uma string. Por Exemplo:
"Marina Oliveira".
Porém, dentro do nosso dicionário, o nome e sobrenome são elementos dentro de uma tupla, então ao consultar no dicionário deveria estar:
("Marina", "Oliveira")
Desse modo, ao consultar no dataset, a aluna nunca é encontrada.
Sugestão:
| nome_aluna = input("Insira o nome completo da aluna: ") | |
| nome = input('Informe o primeiro nome da aluna: ') | |
| sobrenome = input('Informe o sobrenome da aluna: ') | |
| nome_aluna = (nome, sobrenome) |
Podemos receber desta forma, ou usar a função split para separar a string:
| nome_aluna = input("Insira o nome completo da aluna: ") | |
| nome_aluna = input("Insira o nome completo da aluna: ") | |
| nome, sobrenome = nome_aluna.split() | |
| chave_aluna = (nome, sobrenome) |
| if nome_aluna in dataset: | ||
| notas = dataset[nome_aluna]["Notas"] | ||
| print(f"\nAs notas da aluna {nome_aluna} são: {notas}") | ||
| else: | ||
| print(f"\nA aluna {nome_aluna} não foi encontrada.") |
There was a problem hiding this comment.
A implementação está correta, mas a função não consegue encontrar as alunas por causa do input.
| notas = dados_aluna.get("Notas", []) | ||
| presenca = dados_aluna.get("Presença", []) | ||
| participacao = dados_aluna.get("Participação", 0) |
There was a problem hiding this comment.
Excelente implementação com a função get.
| media = sum(notas) / len(notas) if notas else 0 | ||
| presenca_percentual = (presenca.count(True) / len(presenca)) * 100 if presenca else 0 |
There was a problem hiding this comment.
Bom trabalho com uso de operador ternário
Atividade da semana 05 é o primeiro projeto guiado. A atividade consiste em criar um sistema de alunas para auxiliar em algumas funcionalidades, como: incluir novas alunas, consultar lista de alunas cadastradas, consultar quantidade de faltas, consultas as notas e consultar status de aprovação das alunas. Para desenvolver esse sistema, no código tem funções, loops, estrutura de dados, condicionais, operadores lógico e operadores relacionais.