16.01.2014 Views

Beginning Python - From Novice to Professional

Beginning Python - From Novice to Professional

Beginning Python - From Novice to Professional

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CHAPTER 3 ■ WORKING WITH STRINGS 57<br />

Table 3-1. String Formatting Conversion Types<br />

Conversion Type Meaning<br />

d, i Signed integer decimal<br />

o<br />

Unsigned octal<br />

u<br />

Unsigned decimal<br />

x<br />

Unsigned hexadecimal (lowercase)<br />

X<br />

Unsigned hexadecimal (uppercase)<br />

e<br />

Floating point exponential format (lowercase)<br />

E<br />

Floating point exponential format (uppercase)<br />

f, F Floating point decimal format<br />

g<br />

Same as e if exponent is greater than –4 or less than precision, f otherwise<br />

G<br />

Same as E if exponent is greater than –4 or less than precision, F otherwise<br />

c<br />

Single character (accepts integer or single character string)<br />

r<br />

String (converts any <strong>Python</strong> object using repr)<br />

Width and Precision<br />

A conversion specifier may include a field width and a precision. The width is the minimum<br />

number of characters reserved for a formatted value, while the precision is (for a numeric<br />

conversion) the number of decimals that will be included in the result, or (for a string conversion)<br />

the maximum number of characters the formatted value may have.<br />

These two parameters are supplied as two integer numbers (width first, then precision),<br />

separated by a . (dot). Both are optional, but if you want <strong>to</strong> supply only the precision, you must<br />

also include the dot:<br />

>>> '%10f' % pi # Field width 10<br />

' 3.141593'<br />

>>> '%10.2f' % pi # Field width 10, precision 2<br />

' 3.14'<br />

>>> '%.2f' % pi # Precision 2<br />

'3.14'<br />

>>> '%.5s' % 'Guido van Rossum'<br />

'Guido'<br />

You can use an * (asterisk) as the width or precision (or both), in which case the number<br />

will be read from the tuple argument:<br />

>>> '%.*s' % (5, 'Guido van Rossum')<br />

'Guido'

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!