Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
import numpy as np
## MIGRACIONES(LISTAS)
print("\n", "-------------------------- MENU PRINCIPAL -----------------------", "\n",
"1.-Migraciones(Listas)","\n","2.-Migraciones (Numpy)","\n","3.-Salir","\n")
opcion=0
while opcion!="3": ## como nuestro menu solo tiene dos opciones utilizaremos un while que funcionara mientras la opcion ingresas sea distinta de 2
opcion = input("Ingrese la opcion para continuar: ")
if opcion=="1" or opcion=="Migraciones(Listas)" or opcion=="1.-Migraciones(Listas)": ## validamos la opcion 1 donde el usuario puede ingresar la opcion 1 de distintas formas
print("""
------------------------- SUB MENU MIGRACIONES(LISTAS) ----------------------
1.- Estadísticas de migraciones por meses
2.- Migraciones por mes
3.- Estadísticas de migraciones por provincia
4.- Migraciones por provincia
5.- Regresar
""")
subOpcion=input("Escoja la opcion que desee ver: ") ## esta variable se utilizara para referirnos a las opciones que podremos visualizar
listaSubopcion=["1","2","3","4","5"]
while not (subOpcion.isdigit()) or subOpcion not in listaSubopcion:
subOpcion=input("Escoja la opcion que desee ver: ")
if subOpcion=="1" :
archivo = open("migraciones.csv") ## para este caso volveremos abrir el archivo ya que vamos a utilizarlo
lista_Migra_Entrada = [0] * len(listaMeses_existentes) ## estas dos lista sera en donde se guardaran el total de entradas y salidas que tengan cada
mes
lista_Migra_Salida = [0] * len(listaMeses_existentes)
for linea in archivo:
listaLinea=linea.strip(" ").split(";")
mes=listaLinea[6] ## nos indica el mes en la interacion presente del for
migracion=listaLinea[0] ## nos indica el tipo de migracion en la interacion presente del for
indiceMes=listaMeses_existentes.index(mes) ## con este indice ubicaremos el mes que se necesite sumar en cada posicion
if migracion=="Entrada":
lista_Migra_Entrada[indiceMes]+=1 ## por cada coincidencia a medida que el for avanza se ira sumando 1 en la posicion del mes que aparesca
elif migracion=="Salida":
lista_Migra_Salida[indiceMes]+=1
archivo.close() ## vista formateada de las estadisticas de los meses
print("\n","El mes con mayor ingresos es: ", listaMeses_existentes[lista_Migra_Entrada.index(max(lista_Migra_Entrada))]," ","Con",max(lista_Migra_Entrada),"INGRESOS")
print(" El mes con mayor salidas es: ", listaMeses_existentes[lista_Migra_Salida.index(max(lista_Migra_Salida))]," ","Con",max(lista_Migra_Salida),"SALIDAS")
print(" El mes con menor ingresos es: ", listaMeses_existentes[lista_Migra_Entrada.index(min(lista_Migra_Entrada))],"Con",min(lista_Migra_Entrada)," INGRESOS")
print(" El mes con menor salidas es: ", listaMeses_existentes[lista_Migra_Salida.index(min(lista_Migra_Salida))],"Con",min(lista_Migra_Salida)," ","SALIDAS","\n")
print("\n", "-------------------------- MENU PRINCIPAL -----------------------","\n","1.-Migraciones(Listas)","\n","2.-Migraciones (Numpy)","\n","3.-Salir","\n")
elif subOpcion=="2":
archivo = open("migraciones.csv")
lista_Migra_Entrada = [0] * len(listaMeses_existentes) ## estas dos lista sera en donde se guardaran el total de entradas y salidas que tengan cada mes
lista_Migra_Salida = [0] * len(listaMeses_existentes)
for linea in archivo: ## esta parte del codigo es el mismo utilizado arriba para llenar las listas de entrada y salida
listaLinea = linea.strip(" ").split(";")
mes = listaLinea[6]
migracion = listaLinea[0]
indiceMes = listaMeses_existentes.index(mes)
if migracion == "Entrada": ##por cada coincidencia se ira sumando 1 al mes en dicha posicion de la lista
lista_Migra_Entrada[indiceMes] += 1
elif migracion == "Salida":
lista_Migra_Salida[indiceMes] += 1
archivo.close()
print("\n","Los meses existentes son:","|",("-").join(listaMeses_existentes),"|","Elija uno de ellos","\n") ## presentamos todos los meses presentes en el
archivo y de cuales se pueden consultar
mesConsulta=input("INGERESE MES A CONSULTAR: ").capitalize()
while mesConsulta not in listaMeses_existentes: ## mientras no se ingrese el mes correcto el while
lo seguira pidiendo hasta escribir el correcto
mesConsulta = input("INGERESE MES A CONSULTAR: ").capitalize()
if mesConsulta in listaMeses_existentes:
print("\n", "El numero de Ingresos del mes, ", mesConsulta, " es de: ",lista_Migra_Entrada[listaMeses_existentes.index(mesConsulta)]) ## respuesta del literal
2 donde el mes solicitado mostrara las entradas y salidas totates
print(" El numero de Salidas del mes, ", mesConsulta, " es de: ",lista_Migra_Salida[listaMeses_existentes.index(mesConsulta)], "\n")
print("\n", "-------------------------- MENU PRINCIPAL -----------------------", "\n","1.-Migraciones(Listas)","\n","2.-Migraciones (Numpy)","\n","3.-Salir","\n")
elif subOpcion=="3":
archivo = open("migraciones.csv")
lista_Migra_Entrada_Provincias=[0]*len(listaProvincias_existentes) ## ahora se repite todo lo anterior pero con las provincias y no con los meses
lista_Migra_Salida_Provincias=[0]*len(listaProvincias_existentes)
for linea in archivo:
listaLinea=linea.strip(" ").split(";")
provincia=listaLinea[3] ## nos indica la provincia en la interacion presente del for
migracion=listaLinea[0] ## nos indica el tipo de migracion en la interacion presente del for
indiceProvincia=listaProvincias_existentes.index(provincia) ## con este indice ubicaremos las provincias que se necesite sumar en cada posicion
if migracion=="Entrada":
lista_Migra_Entrada_Provincias[indiceProvincia]+=1 ## por cada coincidencia a medida que el for avanza se ira sumando 1 en la posicion de la provincia que aparesca
elif migracion=="Salida":
lista_Migra_Salida_Provincias[indiceProvincia]+=1
archivo.close() ## salida formateada de lo pedido en el literal 3 las estadisticas por provincia
print("\n","La provincia con mayor ingresos es: ", listaProvincias_existentes[lista_Migra_Entrada_Provincias.index(max(lista_Migra_Entrada_Provincias))],"
","Con",max(lista_Migra_Entrada_Provincias),"INGRESOS")
print(" La provincia con mayor salidas es: ", listaProvincias_existentes[lista_Migra_Salida_Provincias.index(max(lista_Migra_Salida_Provincias))],"
","Con",max(lista_Migra_Salida_Provincias),"SALIDAS")
print(" La provincia con menor ingresos es: ",
listaProvincias_existentes[lista_Migra_Entrada_Provincias.index(min(lista_Migra_Entrada_Provincias))],"Con",min(lista_Migra_Entrada_Provincias)," ","INGRESOS")
print(" La provincia con menor salidas es: ",
listaProvincias_existentes[lista_Migra_Salida_Provincias.index(min(lista_Migra_Salida_Provincias))],"Con",min(lista_Migra_Salida_Provincias)," ","SALIDAS","\n")
print("\n", "-------------------------- MENU PRINCIPAL -----------------------", "\n","1.-Migraciones(Listas)","\n","2.-Migraciones (Numpy)","\n","3.-Salir","\n")
elif subOpcion=="4":
archivo=open("migraciones.csv")
lista_Migra_Entrada_Provincias=[0]*len(listaProvincias_existentes) ## estas dos lista sera en donde se guardaran el total de entradas y salidas que tengan
cada provincia
lista_Migra_Salida_Provincias=[0]*len(listaProvincias_existentes)
for linea in archivo: ## esta parte del codigo es el mismo utilizado arriba para llenar las listas de entrada
y salida
listaLinea=linea.strip(" ").split(";")
provincia=listaLinea[3]
migracion=listaLinea[0]
indiceProvincia=listaProvincias_existentes.index(provincia)
if migracion=="Entrada": ##por cada coincidencia se ira sumando 1 a la provincia en dicha posicion de la lista
lista_Migra_Entrada_Provincias[indiceProvincia] += 1
elif migracion=="Salida":
lista_Migra_Salida_Provincias[indiceProvincia] += 1
archivo.close()
print("\n","Las provincias existentes son:","|",("-").join(listaProvincias_existentes),"|","Elija una de ellas","\n") ## se muestra las provincias disponibles que se
pueden consultar
provinciaConsulta=input("INGERESE PROVINCIA A CONSULTAR: ").capitalize()
while provinciaConsulta not in listaProvincias_existentes: ##"mientras provinciaConsulta se distinto a una provincia el while seguira
preguntandopor un nombre valido"
provinciaConsulta=input("INGERESE PROVINCIA A CONSULTAR: ").capitalize()
if provinciaConsulta in listaProvincias_existentes: ## "Salida formateada de lo pedido en el literal 4"
print("\n", "El numero de Ingresos de la provincia, ", provinciaConsulta, " es de:
",lista_Migra_Entrada_Provincias[listaProvincias_existentes.index(provinciaConsulta)])
print(" El numero de Salidas de la provincia, ", provinciaConsulta, " es de: ",lista_Migra_Salida_Provincias[listaProvincias_existentes.index(provinciaConsulta)],
"\n")
print("\n", "-------------------------- MENU PRINCIPAL -----------------------","1.-Migraciones(Listas)","\n","2.-Migraciones (Numpy)","\n","3.-Salir","\n")
if opcion=="2" or opcion=="Migraciones(Numpy)" or opcion=="1.-Migraciones(Numpy)": ## validamos la opcion 1 donde el usuario puede ingresar la opcion 2 de distintas formas
matrizEntrada=np.zeros((len(listaOcupaciones_existentes),len(listaProvinciasPorRegionesExistentes)),dtype=int)
matrizSalida=np.zeros((len(listaOcupaciones_existentes),len(listaProvinciasPorRegionesExistentes)),dtype=int)
indiceFila=listaOcupaciones_existentes.index(listaLinea[10])
print("""
------------------------- SUB MENU MIGRACIONES(Numpy) ----------------------
1.- Estadísticas de migraciones por provincia
2.- Estadísticas de migraciones por ocupaciones
3.- Regresar
""")
subOpcion=input("Escoja la opcion que desee ver: ") ## esta variable se utilizara para referirnos a las opciones que podremos visualizar
listaSubopcion=["1","2","3"]
while not (subOpcion.isdigit()) or subOpcion not in listaSubopcion:
subOpcion=input("Escoja la opcion que desee ver: ")
contador=0
listaProviEntradas=[]
for cantidad in arregloTotalEntradas:
if 1000<cantidad<100000:
contador+=1
listaProviEntradas+=[listaProvinciasPorRegionesExistentes[list(arregloTotalEntradas).index(cantidad)]]
print("El numero de provincias que registran entre 1000 y 100000 entradas son: ",contador)
print("I las provincias son: ",listaProviEntradas,"\n")
##------------------------------------------ salidas ---------------------------------------------------------------------------------
print("------------------------------------------ SALIDAS ---------------------------------------------------------------------------------")
## para las provincias de la costa
arregloCosta=arregloTotalSalidas[:len(costaExistentes)]
print("\nPARA LA COSTA")
print("La provincia de la costa que ha obtenido mayor cantidad de salidas es: ",costaExistentes[arregloCosta.argmax()],"Con un total de: ",arregloCosta.max())
print("La provincia de la costa que ha obtenido menor cantidad de salidas es: ",costaExistentes[arregloCosta.argmin()],"Con un total de: ",arregloCosta.min())
contador=0
listaProviSalidas=[]
for cantidad in arregloTotalSalidas:
if 1000<cantidad<100000:
contador+=1
listaProviSalidas+=[listaProvinciasPorRegionesExistentes[list(arregloTotalSalidas).index(cantidad)]]
print("El numero de provincias que registran entre 1000 y 100000 salidas son: ",contador)
print("I las provincias son: ",listaProviSalidas,"\n")
elif subOpcion == "3": # cuando la subOpcion sera igual a 5 se retornara al menu principal
print("\n", "-------------------------- MENU PRINCIPAL -----------------------", "\n","1.-Migraciones(Listas)","\n","2.-Migraciones (Numpy)","\n","3.-Salir","\n")