Pages

martes, 1 de enero de 2013

Algoritmo para Convertir Numeros a Letras Codigo en Python

Problema
Ingrese un número y convierta a letras.
Solución
Esta solución solo acepta números que van desde el número cero al noventa y nueve, donde el usuario ingresa un numero decimal y la aplicación retornara como respuesta dicho número en letras.
Ejemplo
  • Entrada: 35
  • Salida:  treinta y cinco.
    
import math
unidades = ["cero", "uno", "dos" ,"tres" ,"cuatro" ,"cinco" ,
            "seis" ,"siete" ,"ocho" ,"nueve","diez"]
especiales = ["once", "doce","trece","catorce", "quince",
              "diezciseis", "diecisiete", "dieciocho", "diecinueve"]
decenas = ["veinte", "treinta","cuarenta","cincuenta", "sesenta",
           "setenta", "ochenta", "noventa"]

#El dato ingresado lo convierte a entero y lo almacena en la variable num
num = int(raw_input("Ingrese un numero entre 0-99: "))

if (num >=0 and num <11):
    print unidades[num]

elif (num < 20):
    print especiales[num-11]

elif (num <100):
    
    unid = num% 10;
    #math.floor -> obtiene la parte entera de la division num/10
    #luego ese resultado lo convertimos a entero, 
    dec = int(math.floor(num/10))
    if (unid == 0):
        print decenas[dec-2] 
    else:
        print decenas[dec-2], "y" , unidades[unid]
else:
    print "El numero debe ser menor a 100"

14 comentarios:

wilson lazo rojas dijo...

esta paguina es una basura y no enseña ni mierda asi que mejor ahorrense sus comentarios

Anónimo dijo...

y si es un numero de 3 cifras

Anónimo dijo...

no hay para 3 digitos? necesito urgente

jesus vega cares dijo...

q ignorante eres wilson

Anónimo dijo...

si wilson eres un animal esto esta de lujo!! y si te cres superior has algo mejor!

Anónimo dijo...

http://www.lawebdelprogramador.com/foros/Python/297286-Transformar-numeros-a-literales.html

Anónimo dijo...

print decenas[dec-2] , en esta parte del codigo no entiendo, me pueden explicar?

Anónimo dijo...

Este es un buen ejemplo https://github.com/Axiacore/numero-a-letras/blob/master/python/number_to_letter.py

Anónimo dijo...

2 cifras ???? esta de la mierda este post, mejor vete a chupar una verga bien grande antes de hacer este tipo de tutos porqueria, pendejo baboso )(/)(/&&/%/%$%$%$&$·&

Anónimo dijo...

me salta error en la linea 13

Unknown dijo...

esta ok falta mejorar, pero vale de base para completar a números de tres, cuatro y mas cifras. buen aporte

Anónimo dijo...

dlv

Anónimo dijo...

Gracias, le faltan algunos paréntesis y en Python 3 es sólo input, pero funciona bien.

Anónimo dijo...

import math
unidades = ["cero", "uno", "dos" ,"tres" ,"cuatro" ,"cinco" ,
"seis" ,"siete" ,"ocho" ,"nueve","diez"]
especiales = ["once", "doce","trece","catorce", "quince",
"diezciseis", "diecisiete", "dieciocho", "diecinueve"]
decenas = ["veinte", "treinta","cuarenta","cincuenta", "sesenta",
"setenta", "ochenta", "noventa"]

#El dato ingresado lo convierte a entero y lo almacena en la variable num
num = int(input("Ingrese un numero entre 0-99: "))

if (num >=0 and num <11):
print(unidades[num])

elif (num < 20):
print(especiales[num-11])

elif (num <100):

unid = num % 10;
#math.floor -> obtiene la parte entera de la division num/10
#luego ese resultado lo convertimos a entero,
dec = int(math.floor(num/10))
if (unid == 0):
print(decenas[dec-2])
else:
print(decenas[dec-2], "y" , unidades[unid])
else:
print("El numero debe ser menor a 100")

Publicar un comentario