Python String Formatting: format() function and f-strings
Python is a powerful programming language that has gained popularity due to its ease of use and versatility. One of the most important aspects of Python is its in-built string functions, which include the format()
function and f-strings.
These two functions allow for the easy manipulation of strings, particularly when it comes to formatting them. In this article, we will delve into these two string formatting techniques while exploring their syntax and applications.
Python format() function
The format()
function is an in-built Python function that allows for the formatting of strings. It works by creating a string template that can be filled in with variables or literal values.
The syntax for the format()
function is as follows:
string.format(argument)
The string
refers to the string template, while the argument
refers to the value that is used to replace the placeholders in the template. Here are some examples of how the format()
function can be used:
Index formatting with Python format()
The index values in the format()
function can be used to alter the position of the values in the string that is to be formatted. For example:
string = "{1} is first, while {0} is second"
print(string.format("Python", "Java"))
In this example, “Python” is in the second position, while “Java” is in the first position.
This means that the string template is formatted to place the second argument before the first argument.
Passing values to the arguments in format() function
The format()
function can be passed a parameter list, which allows for the formatting of multiple values into the same string template. Here is an example:
string = "I am {0}, and I am {1} years old"
print(string.format("John", 35))
In this example, the first argument is “John”, while the second argument is 35.
These arguments are filled into the string template to create the final formatted string. Padding a formatted string with
Python format() function
The format()
function can also be used to achieve alignment and padding in the final formatted string.
Here is an example:
a = 10
b = 345
print("{:<5} -> {:>5}".format(a, b))
In this example, the first argument will be left-aligned with a field width of 5, while the second argument will be right-aligned with a field width of 5. Passing dict as a parameter to
Python format() function
The format()
function can also be passed a dictionary as a parameter.
In this case, the placeholders in the string template refer to the keys in the dictionary, while the values in the dictionary are used to replace the placeholders. Here is an example:
info = {"name": "John", "age": 35}
string = "My name is {name}, and I am {age} years old"
print(string.format(**info))
In this example, the **info
operator is used to unpack the dictionary into individual key-value pairs, which are then used to replace the placeholders in the string template.
Passing complex numbers as an argument to the format() function
The format()
function can also be used to access the real and imaginary parts of a complex number. Here is an example:
complex_number = 3+4j
print("Real part: {:.2f}, Imaginary part: {:.2f}".format(complex_number.real, complex_number.imag))
This example shows how the format()
function can be used to format a complex number by accessing its real and imaginary parts.
Python format() function using comma as a separator value
The comma separator can be used to format numbers in the format()
function. Here are some examples:
print("{:,}".format(123456789))
In this example, the comma separator is used to format the number 123456789.
This results in the formatted string “123,456,789”.
Formatting numbers using the format() function
The format()
function can also be used to format numbers in different number systems, such as binary, octal, and hexadecimal. Here are some examples:
binary = 0b1010101
octal = 0o12345
hexadecimal = 0xABCDEF
print("Binary: {:b}".format(binary))
print("Octal: {:o}".format(octal))
print("Hexadecimal: {:X}".format(hexadecimal))
In these examples, the format function is used to format binary, octal, and hexadecimal numbers.
Python f-string
F-strings, or formatted string literals, are another method of formatting strings in Python. They were introduced in Python 3.6 and are a more concise and readable way of formatting strings compared to the format()
function.and syntax
The syntax for f-strings is straightforward and easy to read.
Here is an example:
name = "John"
age = 35
print(f"My name is {name}, and I am {age} years old")
In this example, the variables {name}
and {age}
are replaced with their values in the final formatted string.
Expressions inside f-strings
F-strings also allow for the evaluation of expressions. Here is an example:
a = 10
b = 20
print(f"The sum of {a} and {b} is {a+b}")
Using format specifiers with f-strings
F-strings can also use format specifiers to format the values that are being replaced. Here is an example:
age = 35
print(f"I am {age:.2f} years old")
In this example, the .2f
format specifier is used to round the float value to two decimal places.
Using f-strings with dictionaries
F-strings can also be used with dictionaries. Here is an example:
info = {"name": "John", "age": 35}
print(f"My name is {info['name']}, and I am {info['age']} years old")
In this example, the values from the dictionary are accessed using their keys in the f-string.
Nesting f-strings
F-strings can also be nested within each other. Here is an example:
a = 10
b = 20
print(f"The sum of {a} and {b} is {a+b}
The difference of {a} and {b} is {a-b}.")
In this example, two separate f-strings are nested within the final formatted string.
Summary and comparison to format() function
In conclusion, the format()
function and f-strings are two powerful tools for string formatting in Python. While the format()
function provides more flexibility and allows for the formatting of complex data structures, f-strings are more concise and readable, making them easier to use for simple string formatting tasks.
Both methods are useful and have their own applications in different scenarios. In this article, we explored the
Python format()
function and f-strings.
The format()
function allows for the formatting of strings, and we discussed index formatting, passing values to arguments, padding, passing dictionaries and complex numbers, and formatting numbers. F-strings, on the other hand, are more concise and readable, allowing for the evaluation of expressions, using format specifiers, working with dictionaries, and nesting.
Both tools have their own unique applications in different scenarios, and understanding their syntax and applications can greatly improve your string formatting abilities in Python.