#!/usr/bin/python3 numeros_en_letras = [ "cero", "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve", "diez" ] def contar_y_decir(numero): ''' Luego de parsear el numero a cadena, iteramos y verificamos si los numeros contiguos son iguales e incrementamos conctador en dicho caso, cuando se produce el cambio de numero, anexa a un array auxiliar, la cantidad de repeticiones como el numero. Importante anexamos una cadena fin, para indicar donde termina la cadena Imprime el numero generado en letras y tambien en numeros ''' array_numeros = [] cadena_fin = "\0" numero_str_list = str(numero) + cadena_fin contador_tmp = 1; for i in range(len(numero_str_list) - 1): if (numero_str_list[i] == numero_str_list[i + 1]): contador_tmp += 1 else: array_numeros.append([ contador_tmp, int(numero_str_list[i]) ]) contador_tmp = 1 # Decir los numeros, como se leer numero_a_decir = '' numero_a_decir_en_letra = '' for i in array_numeros: cantidad_tmp = i[0] numero_tmp = i[1] numero_a_decir_en_letra += numeros_en_letras[cantidad_tmp] + ' ' + numeros_en_letras[numero_tmp] + ' ' numero_a_decir += str(cantidad_tmp) + str(numero_tmp) print("----------------") print("Parametro : {}\nNĂºmero generado : {}\nNumero en letras: {}".format(numero, numero_a_decir, numero_a_decir_en_letra)) if __name__ == "__main__": contar_y_decir(1211)