projeto sistema reprograma com todos mvd#27
projeto sistema reprograma com todos mvd#27Karina1510 wants to merge 1 commit intoreprograma:mainfrom
Conversation
|
Atividade da semana programa de alunas reprograma. |
There was a problem hiding this comment.
Oi Karina! ♥
Fiz uma revisão de código para você e espero que você possa revisar seu projeto e complementar posteriormente com 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ê preferiu usar uma estrutura própria para o seu projeto, não houve problema. Mas havia deixado tudo pré pronto para que não tivessem problemas na implementação do dataset, e nesse caso, o dicionário ficou na parte de cima do código, o que não era o ideal. Na próxima vez, tente realizar alguns testes com os dados que você mesma está inserindo.
No demais, você demostrou bastante interesse, aplicou os conceitos que vimos em aula e se esforçou em construir o projeto. Parabéns pelo empenho e pelo trabalho.
Boa sorte e sucesso na sua jornada! ♥
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
There was a problem hiding this comment.
Podemos remover o excesso de quebra de linhas, apenas uma é necessária :)
|
|
||
|
|
||
| def salvamento_dos_dados_aluna (nome,sobrenome,turma,notas,presenca,participacao): | ||
| chave = (nome) |
There was a problem hiding this comment.
A chave é constituida de nome e sobrenome:
Sugestão:
| chave = (nome) | |
| chave = (nome, sobrenome) |
|
|
||
| participacao = int(input("Insira sua nota de participação de 0 á 10: ")) | ||
|
|
||
| salvamento_dos_dados_aluna = (nome,sobrenome,turma,notas,presenca,participacao) |
There was a problem hiding this comment.
Para usar a função, não tem o sinal de igualdade aqui:
Sugestão:
| salvamento_dos_dados_aluna = (nome,sobrenome,turma,notas,presenca,participacao) | |
| salvamento_dos_dados_aluna(nome, sobrenome, turma, notas, presenca, participacao) |
| aulas = bool(input(f"insira presença {i+1} com 'True' e falta com 'False' são 5 aulas: ")) # returnar, criar função bool | ||
| presenca.append(presenca) | ||
|
|
||
| participacao = int(input("Insira sua nota de participação de 0 á 10: ")) |
There was a problem hiding this comment.
A nota de particição necessita ser float, dado que a nota é um valor decimal.
Sugestão:
| participacao = int(input("Insira sua nota de participação de 0 á 10: ")) | |
| participacao = float(input("Insira sua nota de participação de 0 á 10: ")) |
| aulas = bool(input(f"insira presença {i+1} com 'True' e falta com 'False' são 5 aulas: ")) # returnar, criar função bool | ||
| presenca.append(presenca) |
There was a problem hiding this comment.
A linha 96 está tentando inserir a lista chamada presenca dentro da lista chamada presenca. O dado que queremos inserir na lista presenca é aulas ne? :)
Sobre utilizar o bool, o código está tentando converter a entrada do usuário para um valor booleano. Em Python, bool() converte uma string não vazia para True, independentemente do conteúdo da string. Por exemplo:
entrada = bool(input("Digite algo: "))
Se o usuário digitar qualquer coisa, como "True", "False", "Sim", "Não" ou qualquer palavra, bool() vai considerar isso como True.
Sugestão:
| aulas = bool(input(f"insira presença {i+1} com 'True' e falta com 'False' são 5 aulas: ")) # returnar, criar função bool | |
| presenca.append(presenca) | |
| while True: | |
| entrada = input(f"Insira presença {i+1} com 'True' ou falta com 'False' são 5 aulas: ") | |
| if entrada == 'True': | |
| presenca.append(True) | |
| break | |
| elif entrada == 'False': | |
| presenca.append(False) | |
| break | |
| else: | |
| print("Entrada inválida. Por favor, insira apenas 'True' ou 'False'.") |
| while True: | ||
| qual_numero = int(input("insira o número: ")) | ||
| if qual_numero == (1): | ||
| print (dataset) |
There was a problem hiding this comment.
A funcionalidade esperada era que retornasse a lista das alunas cadastradas no dicionário. Cuidado com os requisitos que são pedidos, a lista de alunas era apenas para listar nomes. Mas no programa está imprimindo o dicionário. Esta função era esperado estar na função chamada consultar_lista_alunas.
Sugestão:
| print (dataset) | |
| for nome, sobrenome in dataset.keys(): | |
| print(f'Nome: {nome} {sobrenome}') |
| def consultar_dados_alunas (): | ||
| nome_aluna_cadastrada = input("insira o nome da aluna que deseja ver os dados :") | ||
|
|
||
| sobrenome_aluna_cadastrada = input("insira o sobrenome da aluna que deseja ver os dados :") | ||
|
|
||
|
|
||
| if (nome_aluna_cadastrada, sobrenome_aluna_cadastrada) not in dataset: | ||
| print ("esse nome não está no sistema!!") | ||
|
|
||
| else: | ||
| print (f"o seu nome é {nome_aluna_cadastrada} e sobrenome {sobrenome_aluna_cadastrada}") | ||
|
|
||
| return nome_aluna_cadastrada,sobrenome_aluna_cadastrada | ||
|
|
There was a problem hiding this comment.
Adorei que você integrou a parte de consulta em uma única função. Cuidado com excesso de espaços nesta função.
Neste caso, como estamos consultado a aluna, não precisamos retornar ao usuário quando a aluna foi encontrada, pois caso ela seja encontrada, apenas retornamos os dados que o usuário espera, como notas, presença, etc..
Sugestão:
| def consultar_dados_alunas (): | |
| nome_aluna_cadastrada = input("insira o nome da aluna que deseja ver os dados :") | |
| sobrenome_aluna_cadastrada = input("insira o sobrenome da aluna que deseja ver os dados :") | |
| if (nome_aluna_cadastrada, sobrenome_aluna_cadastrada) not in dataset: | |
| print ("esse nome não está no sistema!!") | |
| else: | |
| print (f"o seu nome é {nome_aluna_cadastrada} e sobrenome {sobrenome_aluna_cadastrada}") | |
| return nome_aluna_cadastrada,sobrenome_aluna_cadastrada | |
| def consultar_dados_alunas (): | |
| nome_aluna_cadastrada = input("insira o nome da aluna que deseja ver os dados :") | |
| sobrenome_aluna_cadastrada = input("insira o sobrenome da aluna que deseja ver os dados :") | |
| if (nome_aluna_cadastrada, sobrenome_aluna_cadastrada) not in dataset: | |
| print ("Esse nome não está no sistema!") | |
| return nome_aluna_cadastrada,sobrenome_aluna_cadastrada |
| nome, sobrenome = consultar_dados_alunas() | ||
| qtd_faltas = dataset[(nome, sobrenome)]["Presença"].count(False) | ||
| qtd_presente = dataset [((nome, sobrenome))]["Presença"].count (True) | ||
| print (f"essa aluna tem {qtd_faltas} faltas e {qtd_presente} presentes. ") |
There was a problem hiding this comment.
Um ponto de atenção para a norma gramatical da língua portuguesa:
Sugestão:
| print (f"essa aluna tem {qtd_faltas} faltas e {qtd_presente} presentes. ") | |
| print(f"A aluna {nome} {sobrenome} tem {qtd_faltas} faltas e {qtd_presente} presenças.") |
|
|
||
|
|
||
| def consulta_presenca(): | ||
| while True: |
There was a problem hiding this comment.
O while seguido por break no final não é necessário a menos que você tenha um motivo específico para manter o loop. Se você espera que esse código seja executado apenas uma vez, remova o loop while.
| percentual_presenca = qtd_presente / len(dataset [((nome, sobrenome))]["Presença"]) | ||
| nota_media = float(soma/ len(notas)) | ||
|
|
||
| print(f"sua nota é {nota_media}") |
There was a problem hiding this comment.
Uma sugestão para formatar o valor da média é colocar uma formatação para duas casas decimais:
Sugestão:
| print(f"sua nota é {nota_media}") | |
| print(f"sua nota é {nota_media:.2f}") |
No description provided.