%) for string values. On the left hand side of the operator, you provide a string which is a combination of literal text and formatting codes. Each appearance of a formatting code is matched with an object in a tuple, which appears on the right hand side of the percent sign. The resultant string (which is suitable for printing) replaces the formatting codes with formatted versions of the objects in the tuple. A brief description of the formatting codes is shown in Table 5.2. The formatting codes are preceded with a percent sign, and, optionally, a number which indicates the number of columns which should be used to format the value. For floating point numeric values, the percent sign can optionally be followed by two numbers separated by a period (.); in this case the first number is the field width, and the second number is the number of digits to display after the decimal point. For example, to produce a string called fstring which contains the number 7, formatted with three zeroes after the decimal point, we could use a statement like the following:
>>> fstring = 'The number is %5.3f' % (7) >>> fstring 'The number is 7.000'Notice that the field width was specified as 5, because it needs to be wide enough to display the number along with the decimal point.
%G formatting codes will use normal notation when the
exponent of a number
is greater than -4, and the specified width is sufficient to display the
number. If either of these conditions is not true, then exponential notation will
The right hand argument to the percent sign must contain a tuple, although parentheses are not strictly required when there is exactly one argument to be formatted. With multiple items to be formatted, the format specifications and values are matched one-to-one.
>>> print '%d items at %5.2f per item gives a total of $%4.2f' % \ ... (7,.29,7 * .29) 7 items at 0.29 per item gives a total of $2.03If you fail to provide the proper number of arguments to be converted, a TypeError is raised.