Skip to content

On34 - S05 - Projeto Guiado #1 - Nayara Oliveira Santos #15

Open
nayara-santos wants to merge 11 commits intoreprograma:mainfrom
nayara-santos:main
Open

On34 - S05 - Projeto Guiado #1 - Nayara Oliveira Santos #15
nayara-santos wants to merge 11 commits intoreprograma:mainfrom
nayara-santos:main

Conversation

@nayara-santos
Copy link
Copy Markdown

O que?

  • Projeto guiado: Sistema da Escolha Reprograma

Como?

  • Usei funções
  • Estruturas de dados como dicionário e listas
  • Try e except para tratamento de erros
  • For para percorrer listas dentro do dataset
  • Condicionais para restringir intervalos

Copy link
Copy Markdown
Collaborator

@mayulabs mayulabs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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! ♥

Comment on lines +43 to +59
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: ")
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment on lines +40 to +41
nome = input("Nome da aluna: ")
sobrenome = input("Sobrenome da aluna: ")
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

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

Comment on lines +60 to +73
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")
Copy link
Copy Markdown
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 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]
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

Suggested change
nomes = [print("-", nome) for nome in lista_nomes]
for nome in lista_nomes:
print(f"- {nome}")

Comment on lines +109 to +112
if faltas == 1:
print(f"A aluna {nome} {sobrenome} possui {faltas} falta")
else:
print(f"A aluna {nome} {sobrenome} possui {faltas} faltas")
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adorei que você fez um tratamento para plural :)

Comment on lines +117 to +124
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.")
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parabéns pela implementação. Outra possibilidade era imprimir uma lista de notas, para não ficar diversas mensagens repetidas.

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