0% encontró este documento útil (0 votos)
14 vistas3 páginas

Organización de Alumnos por Control

El documento presenta un código en Python que reorganiza una lista de alumnos en un espacio principal y un área de desbordamiento. Se asignan posiciones a los alumnos basándose en el número de control y se generan archivos de texto con la lista ordenada. Además, incluye funciones para formatear nombres y escribir los datos en un archivo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
14 vistas3 páginas

Organización de Alumnos por Control

El documento presenta un código en Python que reorganiza una lista de alumnos en un espacio principal y un área de desbordamiento. Se asignan posiciones a los alumnos basándose en el número de control y se generan archivos de texto con la lista ordenada. Además, incluye funciones para formatear nombres y escribir los datos en un archivo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Orozco Cruz Marcos Augusto

Administración y Organización de datos

def reorganizar_alumnos():
alumnos = [
{'numero_control': '23080410', 'nombre': 'AGUILAR FERNANDEZ DULCE MARIA'},
{'numero_control': '23080411', 'nombre': 'ALEJANDRO ACOPA MARTHA ISABEL'},
{'numero_control': '23080413', 'nombre': 'ARZOLA HERNANDEZ YAHIR ADRIAN'},
{'numero_control': '23080108', 'nombre': 'BARRADAS CRUZ ANGEL DE JESÚS'},
{'numero_control': '23080414', 'nombre': 'BORJAS LOPEZ JOSE ALEJANDRO'},
{'numero_control': '23080417', 'nombre': 'CELAYA BOLAÑOS EMIDIEL'},
{'numero_control': '23081544', 'nombre': 'CRUZ CULEBRO MARCOS'},
{'numero_control': '23080419', 'nombre': 'DE LA CRUZ VILLALOBOS FATIMA LISSETH'},
{'numero_control': '23081554', 'nombre': 'DOMINGUEZ MENDEZ EDGAR ALEXIS'},
{'numero_control': '23080421', 'nombre': 'FLORES GOMEZ JESUS ALBERTO'},
{'numero_control': '21080822', 'nombre': 'FRANCISCO RAMIREZ ESTEFANÍA'},
{'numero_control': '23080422', 'nombre': 'GALVAN LEON JOSE LUIS'},
{'numero_control': '22081558', 'nombre': 'GIL FARIAS JESUS YAHIR'},
{'numero_control': '23080109', 'nombre': 'GÓMEZ VAZQUEZ DAVID JOSUA'},
{'numero_control': '23080427', 'nombre': 'HERNANDEZ GOMEZ AMAYRANI'},
{'numero_control': '22081064', 'nombre': 'HERNANDEZ HERNANDEZ ANA PAULINA'},
{'numero_control': '22081578', 'nombre': 'MENDEZ MARIN JESUS ENRIQUE'},
{'numero_control': '23080433', 'nombre': 'OROZCO CRUZ MARCOS AUGUSTO'},
{'numero_control': '23080434', 'nombre': 'OSORIO MARTINEZ KEVIN ALONSO'},
{'numero_control': '23080435', 'nombre': 'PABLO HERNANDEZ ROSYBEL'},
{'numero_control': '23080438', 'nombre': 'PELAYO GARCIA JULIA ITZEL'},
{'numero_control': '23080439', 'nombre': 'PERALTA DOMINGUEZ GIBRAN'},
{'numero_control': '23080440', 'nombre': 'PINO LÓPEZ VALENTÍN'},
{'numero_control': '22081637', 'nombre': 'PRADO MELLADO SERGIO FARID'},
{'numero_control': '23080443', 'nombre': 'RAMOS CAMERAS ADRIANA'},
{'numero_control': '21080850', 'nombre': 'RAMOS ZUÑIGA JOSE MANUEL'},
{'numero_control': '22081591', 'nombre': 'SOBREVILLA FUENTES ALEXANDRA'},
{'numero_control': '23080444', 'nombre': 'SOSA REYES ERICK'},
{'numero_control': '23080448', 'nombre': 'SOTO MOJICA EMILIANO'},
{'numero_control': '23080450', 'nombre': 'SÁNCHEZ MAYA ANGEL LEONARDO'},
{'numero_control': '22081594', 'nombre': 'TACU GUILLEN INGRID'},
{'numero_control': '22081597', 'nombre': 'VALENCIA AZAMAR ELIU JEETE'},
{'numero_control': '23080451', 'nombre': 'VERDEJO RODRÍGUEZ JOAQUÍN'},
{'numero_control': '22081601', 'nombre': 'VICENCIO DOMINGUEZ AMANDA NICOLE'},
{'numero_control': '23080452', 'nombre': 'VILLALOBOS RODRÍGUEZ EDGAR EMILIO'}
]
espacio_principal = {i: None for i in range(41)}
overflow = {i: [] for i in range(41, 61)}
for alumno in alumnos:
ultimos_4 = int(alumno['numero_control'][-4:])
residuo = ultimos_4 % 37
posicion = round(residuo * 37) % 41
if espacio_principal[posicion] is None:
Orozco Cruz Marcos Augusto
Administración y Organización de datos

espacio_principal[posicion] = alumno
else:
for i in range(41, 61):
if len(overflow[i]) < 1:
overflow[i].append(alumno)
break
return espacio_principal, overflow, alumnos
def formatear_nombre(nombre):
return [Link]()
def generar_archivo_alumnos_ordenados(espacio_principal, overflow):
alumnos_ordenados = []
for pos, alumno in espacio_principal.items():
if alumno:
alumnos_ordenados.append({
'posicion': pos,
'tipo': 'Principal',
'numero_control': alumno['numero_control'],
'nombre': alumno['nombre']
})
for pos, alumnos in [Link]():
if alumnos:
for alumno in alumnos:
alumnos_ordenados.append({
'posicion': pos,
'tipo': 'Overflow',
'numero_control': alumno['numero_control'],
'nombre': alumno['nombre']
})
alumnos_ordenados.sort(key=lambda x: x['posicion'])
with open('alumnos_ordenados_simple.txt', 'w', encoding='utf-8') as file:
[Link]("LISTA DE ALUMNOS ORDENADOS POR POSICIÓN\n")
[Link]("=========================================\n")
[Link]("Principal (0-40):\n")
for alumno in [a for a in alumnos_ordenados if a['tipo'] == 'Principal']:
datos = f"{alumno['posicion']}, {alumno['numero_control']},
{formatear_nombre(alumno['nombre'])}"
[Link](datos + "\n")
[Link]("\n" + "==========================================="*60 + "\n")
[Link]("Overflow (41-60):\n")
for alumno in [a for a in alumnos_ordenados if a['tipo'] == 'Overflow']:
datos = f"{alumno['posicion']}, {alumno['numero_control']},
{formatear_nombre(alumno['nombre'])}"
[Link](datos + "\n")
espacio_principal, overflow, alumnos = reorganizar_alumnos()
generar_archivo_alumnos_ordenados(espacio_principal, overflow)
Orozco Cruz Marcos Augusto
Administración y Organización de datos

print("Archivo de alumnos:")

También podría gustarte