Ejercicio: 2Eva_IIT2016_T2 País destino para jubilados extranjeros
Propuesta de solución en Python:
requiere usar el archivo: destinosdatos.txt
# CCPG1001-Fundamentos de programación FIEC-ESPOL # 2Eva_IIT2016_T2 País destino para jubilados extranjeros def cargarDatos(nomFile): datos = {} archivo = open(nomFile, 'r') linea = archivo.readline() while not(linea==''): linea = linea.strip('\n') partes = linea.split(',') ciu = partes[0] met = partes[1] val = float(partes[2]) if not(ciu in datos): datos[ciu] = {met:val} else: datos[ciu][met]= val linea = archivo.readline() archivo.close() return(datos) def metricaPais(datos, paises): promedios = {} for unpais in paises: totalcanasta = 0 totaltemperatura = 0 ciudades = paises[unpais] for unaciudad in ciudades: unacanasta = datos[unaciudad]['canastaBasica'] totalcanasta = totalcanasta + unacanasta unatemp = datos[unaciudad]['temperatura'] totaltemperatura = totaltemperatura + unatemp # los promedios son por pais promediocanasta = totalcanasta/len(ciudades) promediotemperatura = totaltemperatura/len(ciudades) promedios[unpais] = {'canastaBasica': promediocanasta, 'temperatura': promediotemperatura} return(promedios) def generaPaises(promedios, metrica, minimo, maximo): narchivo = 'cumplencon.csv' archivo = open(narchivo, 'w') for unpais in promedios: valor = promedios[unpais][metrica] if (valor>=minimo and valor<=maximo): linea = unpais +'\n' archivo.write(linea) archivo.close mensaje = 'resultados en archivo' return(mensaje) # PROGRAMA Prueba # INGRESO paises = {'Ecuador':{'Cuenca','Guayaquil'}, 'Colombia':{'Bogotá'}} nomFile = 'destinosdatos.txt' metrica = input('cual metrica: ') minimo = float(input('minimo: ')) maximo = float(input('maximo: ')) # PROCEDIMIENTO tabla = cargarDatos(nomFile) promedios = metricaPais(tabla, paises) cualescumplen = generaPaises(promedios, metrica, minimo, maximo) # SALIDA print('tabla de datos: ') print(tabla) print('paises') print(paises) print('promedios de características') print(promedios) print('paises de interes para el jubilado, en archivo')