Python format() Function

Spread the love

The format() function in Python is a built-in utility used to return a formatted representation of the specified value, based on the provided format specifier. The format specifier defines how the output should appear, allowing for customization of the presentation of the value.

In essence, the format() function lets you control and adjust the appearance of a given value, making it adaptable for different scenarios where specific data representations are required.


format(value[, format_spec])


The format() function is invoked with two arguments:

  • value: The value you wish to format.
  • format_spec: The format specifier that dictates the format of the output.

Return Value

The format() function returns a formatted representation of a given value specified by the format specifier.


Decimal and Floating-Point Formatting:

To represent a number with a fixed number of decimal places:

print(format(3.141592653589793, '.2f'))  # Outputs: 3.14

Here, .2f ensures the floating-point number is displayed with 2 decimal places.

Thousands Separator:

The format() function can also introduce commas as thousands separators:

print(format(1000000, ','))  # Outputs: 1,000,000

The comma in the format specifier acts as a thousands separator.

Scientific Notation:

Numbers can be formatted to appear in scientific notation:

print(format(123456789, '.3e'))  # Outputs: 1.235e+08

Here, .3e represents the number in scientific notation rounded to 3 decimal places.

Percentage Formatting:

Convert a number into a percentage:

print(format(0.25, '.2%'))  # Outputs: 25.00%

The .2% format specifier multiplies the number by 100 and appends a percentage sign.

Binary, Octal, and Hexadecimal Representation:

print(format(5, 'b'))  # Outputs: 101
print(format(9, 'o'))  # Outputs: 11
print(format(255, 'x'))  # Outputs: ff

Padding and Alignment:

You can specify the width and alignment of the formatted number. For example, right-align a number within a 10-character wide field:

print(format(42, '>10'))  # Outputs: "        42"

Here, >10 right-aligns the number in a field of width 10. Similarly, you can use < for left alignment and ^ for center alignment.

Sign and Zero Padding:

Display positive numbers with a plus sign:

print(format(42, '+'))  # Outputs: +42

Zero-pad a number:

print(format(42, '05'))  # Outputs: 00042

Here, 05 ensures the number is displayed with a width of 5, padding with zeroes if necessary.

Formatting Types

The format specifier can be used to control the type of formatting. Here are some common types:
'<' – Left aligns the result (within the available space)
'>' – Right aligns the result (within the available space)
'^' – Center aligns the result (within the available space)
'=' – Places the sign to the left most position
'+' – Use a plus sign to indicate if the result is positive or negative
'-' – Use a minus sign for negative values only
' ' – Use a leading space for positive numbers
',' – Use a comma as a thousand separator
'_' – Use a underscore as a thousand separator
'b' – Binary format
'c' – Converts the value into the corresponding unicode character
'd' – Decimal format
'e' – Scientific format, with a lower case e
'E' – Scientific format, with an upper case E
'f' – Fix point number format
'F' – Fix point number format, upper case
'g' – General format
'G' – General format (using a upper case E for scientific notations)
'o' – Octal format
'x' – Hex format, lower case
'X' – Hex format, upper case
'n' – Number format
'%' – Percentage format

Built-in format() Vs. String format()

Built-in format( ) Function

The built-in format() function is primarily designed to format a single value based on a specified format.


  • Formatting a number with two decimal places: format(3.14159, '.2f') produces '3.14'.
  • Formatting a number in hexadecimal: format(255, 'x') yields 'ff'.


  • Suitable for quick formatting of single values.
  • Distinct and separate from any string context.


  • Not as flexible as the string’s format() method when working with multiple values or complex string templates.

String’s format( ) Method

The string’s format() method is more versatile and is designed to format multiple values into a string template. This method is associated with a string object and uses placeholders, represented by curly braces {}, which are then filled using the provided arguments.


  • Inserting values into a string: "Hello, my name is {}".format("Alice") produces 'Hello, my name is Alice'.
  • Using named placeholders: "The sky is {color}".format(color="blue") yields 'The sky is blue'.


  • Highly flexible, allowing for the insertion of multiple values into a string.
  • Supports advanced formatting options like indexing, named placeholders, and more.
  • Ideal for constructing complex strings with multiple substitutions.


  • Slightly more verbose when formatting a single value compared to the built-in format() function.

Common Use Cases of format( )

  1. Display Control: When displaying data, especially in data science and analytics domains, the format() function can be used to ensure numbers are displayed consistently.
  2. Data Conversion: Convert numbers to various bases, such as binary or hexadecimal.
  3. Tabular Data Presentation: Ensure that columns of data align correctly by specifying field widths.
  4. Financial Computations: Represent values in a fixed decimal format or with thousands separators.


The format() function in Python offers a wide array of options to tailor the representation of data. With its powerful format specifiers, developers can exert fine-grained control over how data is presented, ensuring clarity and consistency.

Leave a Reply