Skip to content

Instantly share code, notes, and snippets.

@Danisan
Created April 21, 2015 22:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Danisan/80a6afcabefd228436e2 to your computer and use it in GitHub Desktop.
Save Danisan/80a6afcabefd228436e2 to your computer and use it in GitHub Desktop.
Función para expresar en letras
def componer(value):
x = int(value)
unidad = ['','uno','dos','tres','cuatro','cinco','seis','siete','ocho','nueve']
decena = ['diez','once','doce','trece','catorce','quince','dieciseis','dicisiete','dieciocho','diecinueve']
decadas = {
2:['veinte','veinti'],
3:['treinta','treinta y '],
4:['cuarenta','cuarenta y '],
5:['cincuenta','cincuenta y '],
6:['sesenta','sesenta y '],
7:['setenta','setenta y '],
8:['ochenta','ochenta y '],
9:['noventa','noventa y '],
}
centena = [
'',
'ciento ',
'doscientos ',
'trescientos ',
'cuatrocientos ',
'quinientos ',
'seiscientos ',
'setecientos ',
'ochocientos ',
'novecientos '
]
if x < 1000000:
if x < 1000:
if x < 100:
if x < 20:
if x < 10:
return unidad[x]
else:
return decena[x - 10]
else:
if (x % 10 == 0):
return decadas[x / 10][x % 10]
else:
return decadas[x / 10][1] + unidad[x % 10]
else:
if x == 100:
return 'cien '
else:
return centena[x / 100] + componer(x % 100)
else:
return componer(x / 1000) + ' mil ' + componer(x % 1000)
#return 'mil' + componer(x % 1000)
else:
if x < 2000000:
return componer(x / 1000000) + ' millón, ' + componer(x % 1000000)
else:
return componer(x / 1000000) + ' millones, ' + componer(x % 1000000)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment