Ejercicio: 3Eva_IIT2016_T1 Facturar llamadas telefónicas
Propuesta de solución en Python, El ejercicio tiene tarea por completar.
Para las pruebas, requiere el archivo clientes01.csv en el mismo directorio del archivo.py
# CCPG1001-Fundamentos de Programación - FIEC-ESPOL # 3Eva_IIT2016_T1 Facturar llamadas telefónicas # se incluye la estructura de diccionarios. # Tarea: Completar facturación y estadísticas def obtenerClientes(nombreArchivo): facturar = {} archivo = open(nombreArchivo,'r') linea = archivo.readline() while not(linea==''): linea =linea.strip('\n') partes = linea.split(',') ced = partes[0] num = partes[1] sec = partes[2] parm = partes[3].split('|') nac = float(parm[0]) ext = float(parm[1]) est = partes[4] if not(ced in facturar): facturar[ced] = {num:{ 'sector': sec, 'nacional': nac, 'internac': ext, 'estado': est }} else: facturar[ced][num] = { 'sector': sec, 'nacional': nac, 'internac': ext, 'estado': est } linea = archivo.readline() archivo.close() return(facturar) def generarFactura(tabla): # Lista de clientes cedulas = tabla.keys() cedulas = list(cedulas) n = len(cedulas) # Mostrar cada cliente i = 0 while not(i>=n): # Para pantalla # print(cedulas[i]) # Cada archivo narchivo = cedulas[i] + '.txt' archivo = open(narchivo, 'w') archivo.write('Empresa Telefonica de Guayaquil \n') archivo.write('cliente: ' + cedulas[i] + '\n') archivo.write('Detalle Deuda: \n') tablanumeros = tabla[cedulas[i]] # print(tablanumeros) numeros = tablanumeros.keys() numeros = list(numeros) # print(numeros) m = len(numeros) j = 0 while not(j>=m): datos = tablanumeros[numeros[j]] nac = tablanumeros[numeros[j]]['nacional'] costonac = nac * 0.03 archivo.write(numeros[j] + ' nac: '+str(costonac)+ '\n') j = j + 1 archivo.close() i = i + 1 return() # PROGRAMA # INGRESO narchivo = 'clientes.csv' # PROCEDIMIENTO tabla = obtenerClientes(narchivo) # SALIDA generarFactura(tabla) # ------- # Usado para explicación de uso de diccionarios ### Lista de clientes ##cedulas = tabla.keys() ##cedulas = list(cedulas) ##n = len(cedulas) ## ### Salida ##print('los clientes son: ', cedulas) ##print('los datos del cliente son:') ##for i in range(0,n,1): ## print(cedulas[i]) ## numeroscedula = tabla[cedulas[i]].keys() ## print(numeroscedula)