Python - String Formatting Operator
String Formatting Operator
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. Format specification symbols (%d %c %f %s etc) used in C language are used as placeholders in a string.
Example
Following is a simple example −
print ("My name is %s and weight is %d kg!" % ('Zara', 21))
It will produce the following output −
My name is Zara and weight is 21 kg!
Symbols Used With String Formatting Operator
Here is the list of complete set of symbols which can be used along with % −
| Sr.No | Format 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.No. | Format Symbol & Conversion |
|---|---|
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. |
6 |
0 pad from left with zeros (instead of spaces) |
7 |
% '%%' leaves you with a single literal '%' |
8 |
(var) mapping variable (dictionary arguments) |
9 |
m.n. m is the minimum total width and n is the number of digits to display after the decimal point (if appl.) |
String Formatting Operator Examples
Example: Format Integer & String Using % Operator
In the following example, name is a string and age is an integer variable. Their values are inserted in the string at %s and %d format specification symbols respectively. These symbols are interpolated to values in a tuple in front % operator.
name="Rajesh"
age=23
print ("my name is %s and my age is %d years" % (name, age))
It will produce the following output −
my name is Rajesh and my age is 23 years
Example: Specifying Width/Padding Using % Operator
You can specify width of an integer and float object. Here integer objects a,b and c will occupy width of 5 characters in formatted string. Additional spaces will be padded to left.
a=1
b=11
c=111
print ("a=%5d b=%5d c=%5d" % (a, b, c))
It will produce the following output −
a= 1 b= 11 c= 111
Example: Float Precision Handling Using % Operator
In following example, width of float variable is specified to have 6 characters with three digits after decimal point.
name="Rajesh"
age=23
percent=55.50
print ("my name is %s, age %d and I have scored %6.3f percent marks" % (name, age, percent))
It will produce the following output −
my name is Rajesh, age 23 and I have scored 55.500 percent marks
Example: String Padding Using % Operator
Width for a string can also be specified. Default alignment is right. For left alignment give negative sign to width.
name='TutorialsPoint'
print ('Welcome To %20s The largest Tutorials Library' % (name, ))
print ('Welcome To %-20s The largest Tutorials Library' % (name, ))
It will produce the following output −
Welcome To TutorialsPoint The largest Tutorials Library Welcome To TutorialsPoint The largest Tutorials Library
Example: Truncating Long String Using % Operator
Add a '. ' to the format to truncate longer string.
name='TutorialsPoint'
print ('Welcome To %.5s The largest Tutorials Library' % (name, ))
It will produce the following output −
Welcome To Tutor The largest Tutorials Library