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