3.1   Agregando las comas

Los números muy grandes son difíciles de entender sin las comas que normalmente usamos. Vamos entonces a definir una función que agregue las comas. Los pasos necesarios serían:

Al probar la función en el código anterior, remplazamos 2**n con poncoma(2**n) y además formamos columnas con el operador %:

def poncoma( n ): 
    "Regresa n como cadena con comas." 
    s = str(n) 
    pos = len(s) 
    while pos > 3: 
        pos = pos - 3 
        s = s[:pos] +  ',' + s[pos:] 
    return s 
 
for n in range(60): 
    print '%3d %30s' % ( n, poncoma( 2**n ) )

Nota sobre versiones de Python: en las versiones 1.5.2 hasta 2.0, podemos utilizar la función rjust() del módulo string. Necesitaremos incluir el comando import string al principio del ejemplo*,* y referir la función como string.rjust(str(n), 3) y string.rjust(poncoma(2**n), 30). A partir de las versión 2.1 todas las cadenas y las funciones que regresan cadena tienen la función rjust() incluída, y podríamos usar str(n).rjust(3) y poncoma(2**n).rjust(30).

El resultado será ahora más legible:

0                               1 
1                               2 
2                               4 
3                               8 
4                              16 
5                              32 
6                              64 
7                             128 
8                             256 
9                             512 
10                          1,024 
11                          2,048 
12                          4,096 
13                          8,192 
14                         16,384 
15                         32,768 
16                         65,536 
17                        131,072 
18                        262,144 
19                        524,288 
20                      1,048,576 
21                      2,097,152 
22                      4,194,304 
23                      8,388,608 
24                     16,777,216 
25                     33,554,432 
26                     67,108,864 
27                    134,217,728 
28                    268,435,456 
29                    536,870,912 
30                  1,073,741,824 
31                  2,147,483,648 
32                  4,294,967,296 
33                  8,589,934,592 
34                 17,179,869,184 
35                 34,359,738,368 
36                 68,719,476,736 
37                137,438,953,472 
38                274,877,906,944 
39                549,755,813,888 
40              1,099,511,627,776 
41              2,199,023,255,552 
42              4,398,046,511,104 
43              8,796,093,022,208 
44             17,592,186,044,416 
45             35,184,372,088,832 
46             70,368,744,177,664 
47            140,737,488,355,328 
48            281,474,976,710,656 
49            562,949,953,421,312 
50          1,125,899,906,842,624 
51          2,251,799,813,685,248 
52          4,503,599,627,370,496 
53          9,007,199,254,740,992 
54         18,014,398,509,481,984 
55         36,028,797,018,963,968 
56         72,057,594,037,927,936 
57        144,115,188,075,855,872 
58        288,230,376,151,711,744 
59        576,460,752,303,423,488

Le dejamos al lector el ejercicio de mejorar poncoma() añadiendo instrucciones para que acepte números con signo negativo, y con decimales.

manejo-de-informaci-n [0]4   Manejo de informaciónmanejo-de-informaci-n