alguien me ayuda en este codigo de python es muy urgente
Añadir estudiante y calificación")
- Mostrar lista de estudiantes con sus calificaciones")
- Calcular la media de las calificaciones")
- Calcular el número de aprobadosCalcular el número de aprobados")
- Mostrar los estudiantes con mejor calificación")
- Mostrar los estudiantes con calificación superior a la media")
- Consultar la nota de un estudiante determinado")
este el codigo q he puesto necesito revision de alguien q sepa
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 entrarCalificion():
""" funcion para añadir una calificacion """
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 Calcular la media de las calificaciones():
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 y calificación")
print ("\t2 - Mostrar lista de estudiantes con sus calificaciones")
print ("\t3 - Calcular la media de las calificaciones")
print ("\t4 - Calcular el número de aprobadosCalcular el número de aprobados")
print ("\t5 - Mostrar los estudiantes con mejor calificación")
print ("\t6 - Mostrar los estudiantes con calificación superior a la media")
print ("\t7 - Consultar la nota de un estudiante determinado")
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(), entrarCalificion()))
elif opcion == 2:
devolverEstudiante()
elif opcion == 3:
Calcular la media de las calificaciones()
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ó
Respuestas
Respuesta:
hotomnpy
Explicación:
A continuación código Python de programa para registrar calificaciones de estudiantes en una lista.
# Función agregar estudiantes
def addestudiantecalif(estudiantes,n):
_nota = float()
continuar = str()
continuar = "s"
_nota = 0
while True:
n = n+1
print("Ingrese el nombre del estudiante a añadir: ", end="")
estudiantes[n-1][0] = input()
print("Ingrese las notas del estudiante (0-10): ", end="")
while True:
_nota = float(input())
if _nota<0 or _nota>10:
print("la nota tiene que estar entre 0 y 10")
if _nota>=0 and _nota<=10: break
estudiantes[n-1][1] = str(_nota)
while True:
print("Continuar con otro estudiante?: (s/n)")
continuar = input()
continuar = str . lower(continuar)
if (continuar=="s" or continuar=="n"): break
print(" ")
if continuar=="n":
return (estudiantes,n)
if continuar=="n" : break
# Función listar estudiantes
def listarestudiantesnombre(estudiantes,n):
x = int()
nombre = str()
nota = str()
x = 0
nombre = " "
nota = " "
print("Nombre de estudiante nota")
for x in range(1,n+1):
nombre = estudiantes[x-1][0]
nota = estudiantes[x-1][1]
print(nombre," ",nota)
# Función calcular media de las calificaciones
def mediadecalificaciones(estudiantes, n):
x = int()
media = float()
media = 0
for x in range(1,n+1):
media = media+float(estudiantes[x-1][1])
media = media/n
print("La media de calificaciones es: ",media)
# Función contar estudiantes aprobados
def aprobados(estudiantes, n):
x = int()
_aprobados = int()
_aprobados = 0
for x in range(1,n+1):
if float(estudiantes[x-1][1])>=5:
_aprobados = _aprobados+1
print("Nota mínima aprobatoria es 5")
print("Cantidad de estudiantes aprobados: ",_aprobados)
# Función mostrar mejores estudiantes
def mejorcalificacion(estudiantes, n):
x = int()
z = int()
nombre = str()
_mayor = float()
_mayor = 0
for x in range(1,n+1):
_nota = float(estudiantes[x-1][1])
for z in range(x,n+1):
if _nota>_mayor:
_mayor = _nota
nombre = estudiantes[x-1][0]
estudiantes[x-1][0] = estudiantes[z-1][0]
estudiantes[x-1][1] = estudiantes[z-1][1]
estudiantes[z-1][0] = nombre
estudiantes[z-1][1] = str(_nota)
print("Mejores estudiantes")
_nota = float(estudiantes[0][1])
print("Nombre nota")
for x in range(1,n+1):
if _nota==float(estudiantes[x-1][1]):
nombre = estudiantes[x-1][0]
print(nombre," ",_nota)
# Función mostrar estudiantes con nota mayor a la media
def superioralamedia(estudiantes, n):
x = int()
nombre = str()
media = float()
_nota = float()
media = 0
_nota = 0
for x in range(1,n+1):
media = media+float(estudiantes[x-1][1])
media = media/n
# Imprimir resultados
print("Estudiantes con nota mayor a ",media," (media)")
print("Nombre nota")
for x in range(1,n+1):
_nota = float(estudiantes[x-1][1])
if _nota>media:
nombre = estudiantes[x-1][0]
print(nombre," ",_nota)
# Función buscar y mostrar un estudiantes determinado
def devolverestudiante(estudiantes, n):
hay = int()
x = int()
nombre = str()
nota = str()
hay = 0
print("Ingrese el nombre del estudiante: ", end="")
nombre = input()
nombre = str . lower(nombre)
for x in range(1,n+1):
if nombre==estudiantes[x-1][0]:
hay = 1
nota = estudiantes[x-1][1]
print("La nota del estudiante es:",nota)
if hay==0:
print("No se encuentra el estudiante ")
# Función principal
if __name__ == '__main__':
t = int()
p = int()
n = int()
opcion = int()
estudiantes = str()
t = 100 # número tope de estudiantes
p = 2 # datos de los estudiantes (nombre, y nota)
opcion = 0
estudiantes = [[str() for ind0 in range(p)] for ind1 in range(t)]
while True:
print("---------------------------------------------------------------")
print("Selecciona una opción...")
print("\t1 - Añadir estudiante y calificación")
print ("\t2 - Mostrar lista de estudiantes con sus calificaciones")
print ("\t3 - Calcular la media de las calificaciones")
print ("\t4 - Calcular el numero de aprobados")
print ("\t5 - Mostrar los estudiantes con mejor calificación")
print ("\t6 - Mostrar los estudiantes con calificación superior a la media")
print ("\t7 - Consultar la nota de un estudiante determinado")
print ("\n\t0 - Salir")
opcion = int(input("Ingrese el numero de la opción escogida:"))
if opcion==1:
estudiantes,n = addestudiantecalif(estudiantes,n)
elif opcion==2:
listarestudiantesnombre(estudiantes,n)
elif opcion==3:
mediadecalificaciones(estudiantes,n)
elif opcion==4:
aprobados(estudiantes,n)
elif opcion==5:
mejorcalificacion(estudiantes,n)
elif opcion==6:
superioralamedia(estudiantes,n)
elif opcion==7:
devolverestudiante(estudiantes,n)
if opcion==0: break
Para saber más acerca del programa en Python de funciones y arreglos consulte: https://brainly.lat/tarea/50402681 y https://brainly.lat/tarea/62544879
#SPJ2