Inicio > Contabilidad, Programing > Agregando comas a cantidades en python

Agregando comas a cantidades en python

addComa

Hola, ya estamos en diciembre y yo sigo enamorado de python y me sigue ayudando a resolver algunas situaciones que se me presentan dia a dia y sobre todo si trabajas con contadores (saluditos a ellos y ellas!)

Y como el título lo dice, una petición que me han hecho es si es posible adicionar los separadores de comas correspondientes a los miles, para a un grupo de cantidades y para evitar hacer a mano, pensé rápidamente en python.

Lo primer ha sido crear una función addComa() que recibe una cantidad en tipo cadena y regresa la misma cadena pero con las comas ya insertadas, osea si se pasa la cadena 1234567890.50, tiene que regresar la cadena 1,234,567,890.50

def addComa( snum ):
    "Adicionar comas como separadores de miles a n. n debe ser de tipo string"
    s = snum;
    i = s.index('.') # Se busca la posición del punto decimal
    while i > 3:
        i = i - 3
        s = s[:i] +  ',' + s[i:]
    return s

for n in range(60):
    print '%3d %30s' % ( n, addComa( '%.2f'%(float(2**n),) ) )

El for sólo es para generar una lista de número para corrobrar el funcionamiento, el resultado es algo como lo siguiente:

$ python addComa.py
  0                           1.00
  1                           2.00
  2                           4.00
  3                           8.00
  4                          16.00
  5                          32.00
  6                          64.00
  7                         128.00
  8                         256.00
  9                         512.00
 10                       1,024.00
 11                       2,048.00
 12                       4,096.00
 13                       8,192.00
 14                      16,384.00
 15                      32,768.00
 16                      65,536.00
 17                     131,072.00
 18                     262,144.00
 19                     524,288.00
 20                   1,048,576.00
 21                   2,097,152.00
 22                   4,194,304.00
 23                   8,388,608.00
 24                  16,777,216.00
 25                  33,554,432.00
 26                  67,108,864.00
 27                 134,217,728.00
 28                 268,435,456.00
 29                 536,870,912.00
 30               1,073,741,824.00
 31               2,147,483,648.00
 32               4,294,967,296.00
 33               8,589,934,592.00
 34              17,179,869,184.00
 35              34,359,738,368.00
 36              68,719,476,736.00
 37             137,438,953,472.00
 38             274,877,906,944.00
 39             549,755,813,888.00
 40           1,099,511,627,776.00
 41           2,199,023,255,552.00
 42           4,398,046,511,104.00
 43           8,796,093,022,208.00
 44          17,592,186,044,416.00
 45          35,184,372,088,832.00
 46          70,368,744,177,664.00
 47         140,737,488,355,328.00
 48         281,474,976,710,656.00
 49         562,949,953,421,312.00
 50       1,125,899,906,842,624.00
 51       2,251,799,813,685,248.00
 52       4,503,599,627,370,496.00
 53       9,007,199,254,740,992.00
 54      18,014,398,509,481,984.00
 55      36,028,797,018,963,968.00
 56      72,057,594,037,927,936.00
 57     144,115,188,075,855,872.00
 58     288,230,376,151,711,744.00
 59     576,460,752,303,423,488.00
$

Listo problema solucionado, ahora sólo tengo que aplicar dicha función al conjunto de datos a “comear”.

Salu2+

  1. Luis
    22 febrero, 2013 a las 10:41

    buen trabajo, me ha servido de mucho

    • 22 febrero, 2013 a las 13:17

      Hola Luis!

      Que gusto te haya sido de utilidad y se podría saber en que lo has aplicado? O de que trata proyecto? … Claro, si se puede saber!

      Salu2+

  2. 25 junio, 2014 a las 13:31

    Muy buena la funcion pero cuando la trate de usar me da un error de encoding que hay que agregar a la unidad en python para que no de ese error
    Non-ASCII character ‘\xc3’ in file /home/warlock/PycharmProjects/Contabilidad/cuentas/repprueba.py on line 15, but no encoding declared

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

PiKon

3D Printing + Raspberry Pi Camera = PiKon Telescope

gvSIG blog

gvSIG project blog

Python Adventures

Welcome to the Jungle!

A %d blogueros les gusta esto: