You are on page 1of 8

APRENDIENDO PYTHON DESDE CERO PARTE 8 ( format strings avanzado ) Para el manejo avanzado de format strings podemos usar

los codigos de la tablita siguiente, los que explicaremos a continuacion con ejemplos para que se comprenda.

Antes que nada es bueno saber que a diferencia del lenguaje C, en python no se imprime y asigna directamente con format string, si no quedebemos realizar una asignacion o sea b= 'la sandia vale %d pesos ' % 100

es valida y si luego quiero imprimir b lo podre hacer en el siguiente paso

Lo que no esta permitido es realizar el format string y la asignacion dentro del mismo print en un solo paso.

Por lo tanto, si hay una asignacion, luego de realizada esta, se puede en un siguiente paso imprimir el resultado. Vamos otros ejemplos: si asigno precio=1234 y hago un format string decimal a='este objeto vale %d' % precio

Ahora si delante de la 'd' le ponemos un numero con un guion medio delante, aqui -6 no significa numero negativo, el guion medio (-) es el comando de justificacion izquierda, o sea que en este caso, significa que al reemplazarlo, lo hara, pero antes creara un espacio vacio de 6 lugares a partir de la izquierda, de la ubicacin normal que tendria. a='este objeto vale %-6d' % precio 'este objeto vale 1234 ' Ahi vemos que luego de 1234 quedaron dos espacios vacios antes de la comilla final.

Alli vemos que reemplazo como antes por 1234, pero separo antes 6 lugares desde la izquierda del

lugar donde estaria ubicado normalmente, uso 4 caracteres y quedaron 2 vacios de los 6 reservados.

Alli vemos en verde la zona que separo de 6 lugares desde la izquierda, como 1234, tiene solo cuatro caracteres, quedan dos lugares vacios al final antes de la comilla. Si en vez de 6 pusiera 20, el lugar vacio seria mayor.

Alli vemos en verde la zona que preparo de 20 lugares vacios para escribir, y como ocupa solo los primeros 4 caracteres de esos 20, quedaran 16 lugares vacios antes de la comilla final. Otro comando curioso seria si en el ejemplo anterior en vez de usar el guion usamos un cero.

Vemos que en este caso separa los 20 lugares, los cuales llena con ceros delante, y al final coloca el valor que reemplaza jeje. O sea que hasta ahora vimos dos comandos el guion (-) que significa justificacion izquierda y el cero delante (0) que significa zero padding o llenar con ceros delante. Vemos que hay tres tipos de format string para punto flotante, %e, %f y %g, veamos los ejemplos.

Vemos que muestra el punto flotante en el formato 1.234568 e+000 con exponencial en base e, el que sabe de matematica sabe que en este caso el numero 'e', elevado a la 0, es igual a 1, asi que el valor final es el mismo. En numeros mas grandes

El resultado es 2.222222 e+055, realmente no haremos un curso de matematica aqu, pero es notacion exponencial en base ' e ' ,que en cualquier libro de matematica, se puede profundizar. Si cambiamos a %f el mismo ejemplo

Vemos que se muestra en formato de punto flotante comun y por ultimo %g muestra en punto flotante,pero redondeando el resultado.

Tambien aceptan en los format strings de punto flotante, la justificacion izquierda con el guion (-)

Vemos dos ejemplos, en el primer caso se reservan 9 lugares y como el numero de punto flotante tiene 8 caracteres, queda un solo espacio vacio antes de la comilla final, en el ejemplo de abajo como reserve 20 lugares, quedan luego de llenar con los 8 caracteres, 12 lugares vacios antes de la comilla final. Otro caso ocurre al poner un numero por ejemplo 0.2 en el formato, lo que hacemos es decidir cuantos lugares despues del punto se mostraran, en este caso, el numero 0.2, lo que hace es que se muestren solo dos decimales del numero de punto flotante.

Vemos que solo utiliza 1.23 o sea dos lugares despues del punto.

En el ejemplo anterior, mostrara 9 decimales, al poner 0,9 en el formato.

En este combinamos que se muestren solo 2 decimales al poner 05.2 y el 05 hace que se llenen con ceros delante hasta completar cinco caracteres en total usando el cero como padding, jejeeje. Vemos que combinando las tecnicas de justificacion izquierda (-), el zero padding o relleno de ceros (0) y la cantidad de decimales (0,5) por ejemplo para cinco decimales, podemos hacer muchos desastres je. En este ejemplo combinamos todo, en el primero justificacion izquierda de 30 lugares y 5 decimales y en el segundo reservo tambien 30 lugares llenando con ceros los que estan delante y 5 decimales tambien.

Es bueno repasar bien estos ejemplos y entenderlos bien, por eso yo voy despacito marcando bien cada paso.

Aqu vemos la forma sencilla que ya conocemos reemplazando el primer %d por el decimal 1, y el %s por la string 'spam' Otra forma de hacer lo mismo aunque un poco mas compleja, es la siguiente:

la string es '%(v)d %(t)s' all hay dos indices v y d que se reempazan los valores en la llave que esta a continuacion de la string. Mas adelante veremos que el objeto entre llaves se denomina diccionario, y lo aplicaremos en ejemplos en su momento. Otros de los ejemplos de la tablita que nos faltan:

Al utilizar %c, reemplaza por el carcter correspondiente al valor ASCII, que colocamos,

Los que no tienen carcter se reemplazan por la representacion correspondiente, hexadecimal 14, o

sea '\x14'.

%d es decimal y %i es entero,%u unsigned integer, no hay diferencias, en los ejemplos siguientes se ve que es indistinto, aunque el que mas se usa es el %d.

Si es %x lo pasara a hexadecimal al reemplazar.

Bueno creo que con esto ya conocemos bastante del tema de format string que luego lo utilizaremos

al programar, al menos hemos visto la mayor parte de los ejemplos sobre el tema y podemos entender que es lo que significa una string con formato y como manejarlas, punto y aparte al tema siguiente. 'Hasta la parte %d' % 9 Ricardo Narvaja PD:jejeje