On34 - S05 - Projeto Guiado #1 - Nayara Oliveira Santos #15
On34 - S05 - Projeto Guiado #1 - Nayara Oliveira Santos #15nayara-santos wants to merge 11 commits intoreprograma:mainfrom
Conversation
…s e consulta dos nomes das alunas cadastradas
mayulabs
left a comment
There was a problem hiding this comment.
Oi Nayara!
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.
Vi que você adicionou validações, implementou coisas a mais e seu projeto foi bem testado! Parabéns pelo trabalho!
Boa sorte e sucesso na sua jornada! ♥
| quantidade_notas = input("Quantidade de notas: ") | ||
| try: | ||
| notas = [] | ||
| for i in range(int(quantidade_notas)): | ||
| try: | ||
| nota = float(input(f"Insira a nota #{i+1}: ")) | ||
| if nota >= 0 and nota <= 10: | ||
| notas.append(nota) | ||
| else: | ||
| print("Entrada inválida. A nota deve ser um número entre 0 e 10.") | ||
| except ValueError: | ||
| print("Entrada inválida. Por favor, digite um número.\n") | ||
| if len(notas) != int(quantidade_notas): | ||
| notas = [] | ||
| except ValueError: | ||
| print("Entrada inválida. Por favor, digite um número inteiro.\n") | ||
| quantidade_aulas = input("Quantidade de aulas: ") |
There was a problem hiding this comment.
Excelente implementação para pegar os dados de notas. Poderíamos mover esse bloco de código para uma nova função, assim podemos reaproveitar futuramente.
| nome = input("Nome da aluna: ") | ||
| sobrenome = input("Sobrenome da aluna: ") |
There was a problem hiding this comment.
A parte de obter nome e sobrenome da aluna e construir uma tupla é usada nas outras funções também, neste caso, poderiamos fazer uma função que recebe esses dados e retorna uma chave.
Sugestão:
| nome = input("Nome da aluna: ") | |
| sobrenome = input("Sobrenome da aluna: ") | |
| chave_aluna = obter_nome_aluna() | |
| def obter_nome_aluna() | |
| nome = input("Nome da aluna: ") | |
| sobrenome = input("Sobrenome da aluna: ") | |
| return (nome, sobrenome) |
| try: | ||
| presencas = [] | ||
| for i in range(int(quantidade_aulas)): | ||
| presenca = input(f"A aluna esteve presente na aula #{i+1}? Digite P para presente ou A para ausente: ") | ||
| if presenca == "P": | ||
| presencas.append(True) | ||
| elif presenca == "A": | ||
| presencas.append(False) | ||
| else: | ||
| print("Opção inválida. Por favor, escolha uma opção válida (P ou A).") | ||
| if len(presencas) != int(quantidade_aulas): | ||
| presencas = [] | ||
| except ValueError: | ||
| print("Entrada inválida. Por favor, digite um número inteiro\n") |
There was a problem hiding this comment.
Excelente implementação da parte de presenças, assim como o bloco de código anterior, poderíamos mover para uma função específica.
| else: | ||
| lista_nomes = [nome_completo[0] for nome_completo in nomes_completos] | ||
| print("A lista com os nomes das alunas cadastradas é: ") | ||
| nomes = [print("-", nome) for nome in lista_nomes] |
There was a problem hiding this comment.
Estamos atribuindo a impressão a uma variável de forma desnecessária. Podemos simplesmente imprimir em um for. Deste modo, melhoramos a legibilidade e clareza da impressão do nome das alunas e caso queiramos colocar outros tratamentos fica mais fácil.
Sugestão:
| nomes = [print("-", nome) for nome in lista_nomes] | |
| for nome in lista_nomes: | |
| print(f"- {nome}") |
| if faltas == 1: | ||
| print(f"A aluna {nome} {sobrenome} possui {faltas} falta") | ||
| else: | ||
| print(f"A aluna {nome} {sobrenome} possui {faltas} faltas") |
There was a problem hiding this comment.
Adorei que você fez um tratamento para plural :)
| nome = input("Informe o nome da aluna: ") | ||
| sobrenome = input("Informe o sobrenome da aluna: ") | ||
| try: | ||
| notas = dataset[(nome, sobrenome)]["Notas"] | ||
| for i in range(len(notas)): | ||
| print(f"Na avaliação #{i+1}, a nota da aluna {nome} {sobrenome} foi {notas[i]}") | ||
| except KeyError: | ||
| print("Não foi possível consultar as notas da aluna. O nome completo informado não corresponde a uma aluna cadastrada.") |
There was a problem hiding this comment.
Parabéns pela implementação. Outra possibilidade era imprimir uma lista de notas, para não ficar diversas mensagens repetidas.
O que?
Como?