Skip to content
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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

marinaoliv
Copy link

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.

Copy link
Collaborator

@mayumisngk mayumisngk left a 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!

Comment on lines +39 to +49
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
Copy link
Collaborator

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

Comment on lines +58 to +63
try:
nota = float(entrada)
notas.append(nota)
break
except ValueError:
print("Entrada inválida. Por favor, insira true ou false.")
Copy link
Collaborator

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.

Comment on lines +71 to +81
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'.")
Copy link
Collaborator

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.

Comment on lines +100 to +101
for nome in dataset:
print(nome)
Copy link
Collaborator

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:

Suggested change
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: ")
Copy link
Collaborator

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:

Suggested change
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:

Suggested change
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)

Comment on lines +115 to +119
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.")
Copy link
Collaborator

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.

Comment on lines +126 to +128
notas = dados_aluna.get("Notas", [])
presenca = dados_aluna.get("Presença", [])
participacao = dados_aluna.get("Participação", 0)
Copy link
Collaborator

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.

Comment on lines +130 to +131
media = sum(notas) / len(notas) if notas else 0
presenca_percentual = (presenca.count(True) / len(presenca)) * 100 if presenca else 0
Copy link
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants