-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Entrega do projeto guiado I da semana 5. #17
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ó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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excelente implementação da obtenção de presença das alunas.
for nome in dataset: | ||
print(nome) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.