Código de Python - CRUD de un diccionario de estudiantes con sus notas

Imágen de perfil
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

CRUD de un diccionario de estudiantes con sus notasgráfica de visualizaciones


Python

Publicado el 25 de Febrero del 2020 por Joel (150 códigos)
7.855 visualizaciones desde el 25 de Febrero del 2020
Este código muestra como gestionar un diccionario de estudiantes, permitiendo añadir estudiantes con sus notas, buscar por el nombre, modificar la nota de un estudiante, listar los estudiantes ordenados alfabéticamente o por nota, y obtener la media de las notas.

Al utilizar un diccionario para guardar los estudiantes, no permite que se repitan los nombres.

CRUD-de-estudiantes-en-python


Puedes ver la misma versión utilizando una lista en vez de un diccionario: https://www.lawebdelprogramador.com/codigo/Python/5969-CRUD-de-una-lista-de-estudiantes-con-sus-notas.html

Versión 1

Publicado el 25 de Febrero del 2020gráfica de visualizaciones de la versión: Versión 1
7.856 visualizaciones desde el 25 de Febrero del 2020
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# -*- coding: utf-8 -*-
 
def entrarNombre():
    """ funcion para añadir un nombre """
    while True:
        nombre = input("Ingrese el nombre del estudiante a añadir: ")
        if nombre=="":
            print("el nombre no puede estar vacio")
        else:
            return nombre
 
 
def entrarNota():
    """ funcion para añadir una nota """
    while True:
        try:
            nota = float(input("Ingrese la nota del estudiante (0-10):"))
            if 0<=nota<=10:
                return nota
            else:
                print("la nota tiene que estar entre 0 y 10")
        except:
            print("la nota tiene que ser un valor numerico")
 
 
def agregarEstudiante():
    nombre=entrarNombre()
    if nombre in estudiantes:
        print("Este estudiante ya existe")
        return False
 
    estudiantes[nombre]=entrarNota()
    return True
 
 
def devolverEstudiante():
    nombre=entrarNombre()
    if nombre in estudiantes:
        print("La nota del estudiante '{}' es {}".format(nombre, estudiantes[nombre]))
        return True
    else:
        print("No se encuentra el estudiante")
    return False
 
 
def modificarNota():
    nombre=entrarNombre()
    if nombre in estudiantes:
        estudiantes[nombre]=entrarNota()
        print("Se ha actualizado la nota al estudiante '{}'".format(nombre))
        return True
    else:
        print("No se ha encontrado el estudiante '{}'".format(nombre))
        return False
 
 
def listarEstudiantesNombre():
    keys=sorted([i[0] for i in estudiantes.items()])
    print("\n".join(i+" - "+str(estudiantes[i]) for i in keys))
 
 
def listarEstudiantesNota():
    """ lista los estudiantes ordenados por su nota descendente """
    keys=[i[0] for i in sorted(estudiantes.items(), key=lambda x: x[1], reverse=True)]
    print("\n".join(i+" - "+str(estudiantes[i]) for i in keys))
 
 
def notaMedia():
    """ funcion para mostrar la nota media de los estudiantes """
    if len(estudiantes)==0:
        print("No hay estudiantes")
        return
 
    media=sum([i[1] for i in estudiantes.items()])/len(estudiantes)
    print("La nota media de todos los estudiantes es '{}'".format(media))
 
 
def borrarEstudiante():
    """ funcion para borrar un estudiante """
    nombre=entrarNombre()
    if nombre in estudiantes:
        print("Se ha eliminado el estudiante '{}' con nota {}".format(nombre, estudiantes[nombre]))
        del estudiantes[nombre]
        return True
    else:
        print("No se ha encontrado el estudiante '{}'".format(nombre))
        return False
 
 
 
 
def Menú():
    print("---------------------------------------------------------------")
    print ("Selecciona una opción...")
    print ("\t1 - Añadir estudiante")
    print ("\t2 - Buscar estudiante")
    print ("\t3 - Modificar nota")
    print ("\t4 - Listado de los estudiantes ordenador por el nombre")
    print ("\t5 - Listado de los estudiantes ordenador por su nota")
    print ("\t6 - Mostrar la media de las notas")
    print ("\t7 - Borrar un estudiante")
    print ("\n\t0 - Salir")
 
# definimos el diccionario que contendra los estudiantes con sus notas
estudiantes={}
 
while True:
    Menú ()
 
    try:
        opcion = int(input("Ingrese el número de la opción escogida: "))
    except:
        opcion=-1
 
    if opcion == 1:
        agregarEstudiante()
    elif opcion == 2:
        devolverEstudiante()
    elif opcion == 3:
        modificarNota()
    elif opcion == 4:
        listarEstudiantesNombre()
    elif opcion == 5:
        listarEstudiantesNota()
    elif opcion == 6:
        notaMedia()
    elif opcion == 7:
        borrarEstudiante()
    elif opcion == 0:
        break
    else:
        print("La opción ingresada no es correcta, indica una opción correcta")



Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s5970