2.1.5.2 Operaciones de formato de las cadenas

Los objetos cadena tienen una sola operación interna: el operador % con un operando izquierdo que se interpreta como una cadena de formato de la función de C sprintf() que se aplica al operando derecho, devolviéndose el resultado de la operación de formato.

El argumento derecho ha de ser una tupla con un elemento por cada argumento requerido por la cadena de formato. Si la cadena requiere un solo argumento, el operando derecho puede ser una tupla de un elemento o un objeto simple. Se permiten los siguientes caracteres de formato: %, c, s, i, d, u, o, x, X, e, E, f, g, G. La anchura y la precisión pueden ser un asterisco "*" para especificar que un argumento entero especifica la anchura o precisión final. Es posible usar los caracteres indicadores -, +, blank, # y 0. Los especificadores de tamaño h, l o L pueden incluirse, pero no se tienen en cuenta. La conversión %s toma cualquier objeto de Python y lo convierte a cadena usando str() antes de seguir con el formato. Las marcas ANSI %p y %n no tienen soporte. Como las cadenas de Python tienen una longitud explícita, las conversiones %s no suponen que '\0' sea el final de la cadena.

Por motivos de seguridad, las precisiones de coma flotante se truncan a 50; las conversiones %f para numeros cuyo valor absoluto exceda de 1e25 se sustituyen por conversiones %g2.5. Cualquier otro error hace saltar una excepción.

Si el operando derecho es un diccionario (o cualquier otra correspondencia), los formatos del operando derecho deben hacer referencia a una clave entre paréntesis justo detrás del carácter "%", y cada marca de formato da formato al valor correspondiente a esa clave dentro de la correspondencia derecha. Por ejemplo:

>>> cuenta = 2
>>> lenguaje = 'Python'
>>> print '%(lenguaje)s tiene %(cuenta)03d tipos de comillas.' % vars()
Python tiene 002 tipos de comillas.

En este caso no puede haber especificadores * en el formato (pues requieren una lista de parámetros secuencial).

Se definen operaciones adicionales de cadenas en el módulo estándar string y en el módulo interno re.



Footnotes

...%g2.5
Estas cantidades son bastante arbitrarias. Su intención es evitar la impresión de cadenas interminables de dígitos sin sentido, sin evitar el uso correcto y sin tener que conocer la precisión exacta de los valores de coma flotante de una máquina particular.

Ver Sobre este documento... para obtener información sobre sugerencias.