Código de Python - CRUD de una lista de estudiantes con sus notas

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

CRUD de una lista de estudiantes con sus notasgráfica de visualizaciones


Python

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 25 de Febrero del 2020 por Joel
428 visualizaciones desde el 25 de Febrero del 2020
Este código muestra como gestionar una lista 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 guardar los usuarios en una lista de listas, permite repetir el nombre de un estudiante.

CRUD-de-estudiantes-en-python


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

Versión 1
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 25 de Febrero del 2020gráfica de visualizaciones de la versión: Versión 1
429 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
133
134
135
136
137
# -*- 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 devolverEstudiante():
    nombre=entrarNombre()
    for el in estudiantes:
        if el[0] == nombre:
            print("La nota del estudiante '{}' es {}".format(nombre, el[1]))
            return True
    print("No se encuentra el estudiante")
    return False
 
 
def modificarNota():
    nombre=entrarNombre()
    indice=buscarEstudiante(nombre)
    if indice==-1:
        print("No se ha encontrado el estudiante '{}'".format(nombre))
        return False
 
    # al no poder modificar un elemento de una tupla, lo convertimos
    # temporamente en una lista.
    tmp=list(estudiantes[indice])
    tmp[1]=entrarNota()
    estudiantes[indice]=tuple(tmp)
    print("Se ha actualizado la nota al estudiante '{}'".format(nombre))
    return True
 
 
def listarEstudiantesNombre():
    estudiantes.sort()
    print("\n".join(i[0]+" - "+str(i[1]) for i in estudiantes))
 
 
def listarEstudiantesNota():
    """ lista los estudiantes ordenados por su nota descendente """
    estudiantes.sort(key=lambda x: x[1], reverse=True)
    print("\n".join(i[0]+" - "+str(i[1]) for i in estudiantes))
 
 
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])/len(estudiantes)
    print("La nota media de todos los estudiantes es '{}'".format(media))
 
 
def borrarEstudiante():
    """ funcion para borrar un estudiante """
    nombre=entrarNombre()
    indice=buscarEstudiante(nombre)
    if indice==-1:
        print("No se ha encontrado el estudiante '{}'".format(nombre))
        return False
 
    print("Se ha eliminado el estudiante '{}' con nota {}".format(nombre, estudiantes[indice][1]))
    del estudiantes[indice]
    return True
 
 
def buscarEstudiante(nombre):
    """
    Funcion que devuelve el indice de un estudiante en la lista
    Devuelve -1 si no ha encontrado el estudiante
    """
    for i,e in enumerate(estudiantes):
        if e[0]==nombre:
            return i
    return -1
 
 
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 la lista que contendra una lista con cada estudiante
estudiantes=[]
 
while True:
    Menú ()
 
    try:
        opcion = int(input("Ingrese el número de la opción escogida: "))
    except:
        opcion=-1
 
    if opcion == 1:
        estudiantes.append((entrarNombre(), entrarNota()))
    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 (1)

26 de Febrero del 2020
estrellaestrellaestrellaestrellaestrella
Muchísimas gracias fue de mucha ayuda
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s5969