What does {: 3f mean in python?

  1. Home
  2. Blog
  3. Python String Formatting

(Sponsors) Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!


Updated on Jan 07, 2020


The format() method allows you format string in any way you want.

Syntax: template.format(p1, p1, .... , k1=v1, k2=v2)

template is a string containing format codes, format() method uses it's argument to substitute value for each format codes. For e.g:

>>> 'Sam has {0} red balls and {1} yellow balls'.format(12, 31)

{0} and {1} are format codes. The format code {0} is replaced by the first argument of format() i.e 12, while {1} is replaced by the second argument of format() i.e 31.

Expected Output:

Sam has 12 red balls and 31 yellow balls

This technique is okay for simple formatting but what if you want to specify precision in floating point number? For such thing you need to learn more about format codes. Here is the full syntax of format codes.

Syntax: {[argument_index_or_keyword]:[width][.precision][type]}

The type can be used with format codes:

Format codesDescription
d for integers
f for floating point numbers
b for binary numbers
o for octal numbers
x for octal hexadecimal numbers
s for string
e for floating point in exponent format

Following examples will make things more clear.

Example 1:

>>> "Floating point {0:.2f}".format(345.7916732)

Here we specify 2 digits of precision and f is used to represent floating point number.

Expected Output:

Example 2:

>>> import math
>>> "Floating point {0:10.3f}".format(math.pi)

Here we specify 3 digits of precision, 10 for width and f for floating point number.

Expected Output:

Example 3:

"Floating point pi = {0:.3f}, with {1:d} digit precision".format(math.pi, 3)

Here d in {1:d} represents integer value.

Expected Output:

Floating point pi = 3.142, with 3 digit precision

You need to specify precision only in case of floating point numbers if you specify precision for integer ValueError will be raised.

Example 5:

'Sam has {1:d} red balls and {0:d} yellow balls'.format(12, 31)

Expected Output:

Sam has 31 red balls and 12 yellow balls

Example 6:

"In binary 4 is {0:b}".format(4) # b for binary, refer to Fig 1.1

Expected Output:

Example 7:

array = [34, 66, 12]
"A = {0}, B = {1}, C = {2}".format(*array)

Expected Output:

Example 8:

d = {
'hats' : 122,
'mats' : 42
}

"Sam had {hats} hats and {mats} mats".format(**d)

Expected Output:

Sam had 122 hats and 42 mats

The format() method also supports keywords arguments.

'Sam has {red} red balls and {green} yellow balls'.format(red = 12, green = 31)

Note while using keyword arguments we need to use arguments inside {} not numeric index.

You can also mix position arguments with keywords arguments

'Sam has {red} red balls, {green} yellow balls \
and {0} bats'.format(3, red = 12, green = 31)

The format() method of formatting string is quite new and was introduced in Python 2.6 . There is another old technique  you will see in legacy codes which allows you to format string using % operator instead of format() method.

Let's take an example.

"%d pens cost = %.2f" % (12, 150.87612)

Here we are using template string on the left of %. Instead of {} for format codes we are using %. On the right side of % we use tuple to contain our values. %d and %.2f are called as format specifiers, they begin with % followed by character that represents the data type. For e.g %d format specifier is a placeholder for a integer, similarly %.2f is a placeholder for floating point number.

So %d is replaced by the first value of the tuple i.e 12 and %.2f is replaced by second value i.e 150.87612.

Expected Output:

Some more examples.

Example 1:

New:

"{0:d} {1:d} ".format(12, 31)

Old:

Expected Output:

Example 2:

New:

"{0:.2f} {1:.3f}".format(12.3152, 89.65431)

Old:

"%.2f %.3f" % (12.3152, 89.65431)

Expected Output:

Example 3:

New:

"{0:s} {1:o} {2:.2f} {3:d}".format("Hello", 71, 45836.12589, 45 )

Old:

"%s %o %.2f %d" % ("Hello", 71, 45836.12589, 45 )

Expected Output:


Other Tutorials (Sponsors)

This site generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!


What does {: 2f mean in Python?

2f means to round up to two decimal places. You can play around with the code to see what happens as you change the number in the formatter. ADVERTISEMENT.

What does {: D mean in Python?

It is a formatting character. It tells the formatter to treat the argument as an integer number and format it as such. Other valid formatters could be x to format it as a hexadecimal number, or b for binary, etc.

What does 5f mean in Python?

5f' means round to 5 places after the decimal point. Similarly '. 2f' means round to two decimal places. This format function returns the formatted string.

What is format {: B in Python?

The b" notation is used to specify a bytes string in Python. Compared to the regular strings, which have ASCII characters, the bytes string is an array of byte variables where each hexadecimal element has a value between 0 and 255.