Skip to content

projeto sistema reprograma com todos mvd#27

Open
Karina1510 wants to merge 1 commit intoreprograma:mainfrom
Karina1510:main
Open

projeto sistema reprograma com todos mvd#27
Karina1510 wants to merge 1 commit intoreprograma:mainfrom
Karina1510:main

Conversation

@Karina1510
Copy link

No description provided.

@Karina1510
Copy link
Author

Atividade da semana programa de alunas reprograma.

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

Comment on lines +75 to +81







Copy link
Collaborator

Choose a reason for hiding this comment

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

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)
Copy link
Collaborator

Choose a reason for hiding this comment

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

A chave é constituida de nome e sobrenome:

Sugestão:

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

Choose a reason for hiding this comment

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

Para usar a função, não tem o sinal de igualdade aqui:

Sugestão:

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

Choose a reason for hiding this comment

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

A nota de particição necessita ser float, dado que a nota é um valor decimal.

Sugestão:

Suggested change
participacao = int(input("Insira sua nota de participação de 0 á 10: "))
participacao = float(input("Insira sua nota de participação de 0 á 10: "))

Comment on lines +95 to +96
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)
Copy link
Collaborator

Choose a reason for hiding this comment

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

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:

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

Choose a reason for hiding this comment

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

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:

Suggested change
print (dataset)
for nome, sobrenome in dataset.keys():
print(f'Nome: {nome} {sobrenome}')

Comment on lines +119 to +132
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

Copy link
Collaborator

Choose a reason for hiding this comment

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

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:

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

Choose a reason for hiding this comment

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

Um ponto de atenção para a norma gramatical da língua portuguesa:

Sugestão:

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

Choose a reason for hiding this comment

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

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}")
Copy link
Collaborator

Choose a reason for hiding this comment

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

Uma sugestão para formatar o valor da média é colocar uma formatação para duas casas decimais:

Sugestão:

Suggested change
print(f"sua nota é {nota_media}")
print(f"sua nota é {nota_media:.2f}")

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