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 %g
2.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.