String Formatting Operator in Python



One of Python's coolest features is the string format operator %. This operator is unique to strings and makes up for the pack of having functions from C's printf() family. Following is a simple example −

Example

 Live Demo

#!/usr/bin/python
print "My name is %s and weight is %d kg!" % ('Zara', 21)

Output

When the above code is executed, it produces the following result −

My name is Zara and weight is 21 kg!

Here is the list of complete set of symbols which can be used along with % −

Sr.NoFormat Symbol & Conversion
1%c
character
2%s
string conversion via str() prior to formatting
3%i
signed decimal integer
4%d
signed decimal integer
5%u
unsigned decimal integer
6%o
octal integer
7%x
hexadecimal integer (lowercase letters)
8%X
hexadecimal integer (UPPERcase letters)
9%e
exponential notation (with lowercase 'e')
10%E
exponential notation (with UPPERcase 'E')
11%f
floating point real number
12%g
the shorter of %f and %e
13%G
the shorter of %f and %E

Other supported symbols and functionality are listed in the following table −

Sr.NoSymbol & Functionality
1*
argument specifies width or precision
2-
left justification
3+
display the sign
4<sp>
leave a blank space before a positive number
5#
add the octal leading zero ( '0' ) or hexadecimal leading '0x' or '0X', depending on whether 'x' or 'X' were used.
60
pad from left with zeros (instead of spaces)
7%
'%%' leaves you with a single literal '%'
8(var)
mapping variable (dictionary arguments)
9m.n.
m is the minimum total width and n is the number of digits to display after the decimal point (if appl.)

Advertisements