Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

Python - Transformar números a literales

  Imprimir  
Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:

Transformar números a literales

Autor:Abdiel (1 intervención)
Fecha:11/10/2003 18:27:42
Hola a todos y todas, quet tal........
necesito saber si Python puede tranformar números a literales ejmplo:
1001 <a> mil uno
o si no que sea así
uno cero cero uno
esperando respuesta gracias
Responder
información
Otras secciones de LWP con contenido similar...
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

RE:Transformar números a literales

Autor:Dani (12 intervenciones)
Fecha:10/02/2004 13:01:29
Que yo sepa python no tiene ningun modulo que realize dicha funcion, aunque no me hagas mucho caso que no he estudiado todos los modulos python... de todas formas Python maneja las cadenas de forma muy sencilla y realizar una conversion de números a letras es cosa de niños si empleas un diccionario. Debes tratar los numeros como cadenas desde un principio y con un codigo como el siguiente tendras lo que buscas:
dic={\"0\":\"cero\",\"1\":\"uno\"}
numero=\"1001\"
for n in numero:
print dic[n]
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

RE:Transformar números a literales

Autor:Larry  (1 intervención)
Fecha:12/03/2008 23:22:58
Hola te proveeo de dos funciones que te ayudaran, fueron transcritas de un codigo en VB que encontre en :
http://www.lawebdelprogramador.com/codigo/enlace.php?idp=1279&id=97&texto=Visual+Basic+para+Aplicaciones

Si digitan en el shell de python:
numero_to_letras(411641.123)

el resultado sera:
CUATROCIENTOS ONCE MIL SEISCIENTOS CUARENTA Y UNO con 12/100

Espero que les sea de ayuda

A continuacion el codigo:

def numero_to_letras(numero):
indicador = [("",""),("MIL","MIL"),("MILLON","MILLONES"),("MIL","MIL"),("BILLON","BILLONES")]
entero = int(numero)
decimal = int(round((numero - entero)*100))
#print 'decimal : ',decimal
contador = 0
numero_letras = ""
while entero >0:
a = entero % 1000
if contador == 0:
en_letras = convierte_cifra(a,1).strip()
else :
en_letras = convierte_cifra(a,0).strip()
if a==0:
numero_letras = en_letras+" "+numero_letras
elif a==1:
if contador in (1,3):
numero_letras = indicador[contador][0]+" "+numero_letras
else:
numero_letras = en_letras+" "+indicador[contador][0]+" "+numero_letras
else:
numero_letras = en_letras+" "+indicador[contador][1]+" "+numero_letras
numero_letras = numero_letras.strip()
contador = contador + 1
entero = int(entero / 1000)
numero_letras = numero_letras+" con " + str(decimal) +"/100"
print 'numero: ',numero
print numero_letras


def convierte_cifra(numero,sw):
lista_centana = ["",("CIEN","CIENTO"),"DOSCIENTOS","TRESCIENTOS","CUATROCIENTOS","QUINIENTOS","SEISCIENTOS","SETECIENTOS","OCHOCIENTOS","NOVECIENTOS"]
lista_decena = ["",("DIEZ","ONCE","DOCE","TRECE","CATORCE","QUINCE","DIECISEIS","DIECISIETE","DIECIOCHO","DIECINUEVE"),
("VEINTE","VEINTI"),("TREINTA","TREINTA Y "),("CUARENTA" , "CUARENTA Y "),
("CINCUENTA" , "CINCUENTA Y "),("SESENTA" , "SESENTA Y "),
("SETENTA" , "SETENTA Y "),("OCHENTA" , "OCHENTA Y "),
("NOVENTA" , "NOVENTA Y ")
]
lista_unidad = ["",("UN" , "UNO"),"DOS","TRES","CUATRO","CINCO","SEIS","SIETE","OCHO","NUEVE"]
centena = int (numero / 100)
decena = int((numero -(centena * 100))/10)
unidad = int(numero - (centena * 100 + decena * 10))
#print "centena: ",centena, "decena: ",decena,'unidad: ',unidad

texto_centena = ""
texto_decena = ""
texto_unidad = ""

#Validad las centenas
texto_centena = lista_centana[centena]
if centena == 1:
if (decena + unidad)!=0:
texto_centena = texto_centena[1]
else :
texto_centena = texto_centena[0]

#Valida las decenas
texto_decena = lista_decena[decena]
if decena == 1 :
texto_decena = texto_decena[unidad]
elif decena > 1 :
if unidad != 0 :
texto_decena = texto_decena[1]
else:
texto_decena = texto_decena[0]
#Validar las unidades
#print "texto_unidad: ",texto_unidad
if decena != 1:
texto_unidad = lista_unidad[unidad]
if unidad == 1:
texto_unidad = texto_unidad[sw]

return "%s %s %s" %(texto_centena,texto_decena,texto_unidad)
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

RE:Transformar números a literales

Autor:homara (1 intervención)
Fecha:21/05/2008 15:31:52
18,760.00 a numeros
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

RE:Transformar números a literales

Autor:german (2 intervenciones)
Fecha:09/02/2009 19:44:25
Quiero convertir en literales los siguientes números 409,72 60,002 0,008 y 0,347
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

RE:Transformar números a literales

Autor:german (2 intervenciones)
Fecha:09/02/2009 19:44:26
Quiero convertir en literales los siguientes números 409,72 60,002 0,008 y 0,347
Comentar