String and Unicode objects have one unique built-in operation: the
% operator (modulo).  This is also known as the string
formatting or interpolation operator.  Given
format % values (where format is a string or
Unicode object), % conversion specifications in format
are replaced with zero or more elements of values.  The effect
is similar to the using sprintf() in the C language.  If
format is a Unicode object, or if any of the objects being
converted using the %s conversion are Unicode objects, the
result will be a Unicode object as well.
If format requires a single argument, values may be a single non-tuple object. 2.8 Otherwise, values must be a tuple with exactly the number of items specified by the format string, or a single mapping object (for example, a dictionary).
A conversion specifier contains two or more characters and has the following components, which must occur in this order:
(somename)).
If the right argument is a dictionary (or any kind of mapping), then the formats in the string must have a parenthesized key into that dictionary inserted immediately after the "%" character, and each format formats the corresponding entry from the mapping. For example:
>>> count = 2 >>> language = 'Python' >>> print '%(language)s has %(count)03d quote types.' % vars() Python has 002 quote types.
In this case no * specifiers may occur in a format (since they
require a sequential parameter list).
The conversion flag characters are:
| Flag | Meaning | 
|---|---|
| # | The value conversion will use the ``alternate form'' (where defined below). | 
| 0 | The conversion will be zero padded. | 
| - | The converted value is left adjusted (overrides "-"). | 
| (a space) A blank should be left before a positive number (or empty string) produced by a signed conversion. | |
| + | A sign character ("+" or "-") will precede the conversion (overrides a "space" flag). | 
The length modifier may be h, l, and L may be
present, but are ignored as they are not necessary for Python.
The conversion types are:
| Conversion | Meaning | 
|---|---|
| d | Signed integer decimal. | 
| i | Signed integer decimal. | 
| o | Unsigned octal. | 
| u | Unsigned decimal. | 
| x | Unsigned hexidecimal (lowercase). | 
| X | Unsigned hexidecimal (uppercase). | 
| e | Floating point exponential format (lowercase). | 
| E | Floating point exponential format (uppercase). | 
| f | Floating point decimal format. | 
| F | Floating point decimal format. | 
| g | Same as "e" if exponent is greater than -4 or less than precision, "f" otherwise. | 
| G | Same as "E" if exponent is greater than -4 or less than precision, "F" otherwise. | 
| c | Single character (accepts integer or single character string). | 
| r | String (converts any python object using repr()). | 
| s | String (converts any python object using str()). | 
| % | No argument is converted, results in a "%"
              character in the result.  (The complete specification is
              %%.) | 
(The %r conversion was added in Python 2.0.)
Since Python strings have an explicit length, %s conversions
do not assume that '\0' is the end of the string.
For safety reasons, floating point precisions are clipped to 50;
%f conversions for numbers whose absolute value is over 1e25
are replaced by %g conversions.2.9  All other errors raise exceptions.
Additional string operations are defined in standard modules string and re.