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
python_string_formatting.htm
Advertisements