Python f-strings


title: Python f-strings

f-strings in Python

In Python version 3.6, a new method of formatting strings was implemented. The new method is called Literal string interpolation (though commonly referred to as an f-string, due to f prefix at the beginning of the string).

The use of f-string allows the programmer to dynamically insert a variable into a string in a clean and concise manner. In addition to inserting variables into a string this feature also provides the ability for a programmer to evaluate expressions, join the contents of collection, and even invoke functions within the f-string.

To perform these dynamic behaviours within an f-string we wrap them inside curly brackets within the string, and prepend a lower case f to the beginning of the string (before the opening quote).

Examples

Dynamically inserting a variable into a string at runtime:

Input

name = 'Jon Snow' greeting = f'Hello! {name}.' print(greeting)

Output

Hello! Jon Snow.

Multiple variables, of different types, can be inserted in the same string:

Input

item_id = 'P12305' price = 425.50 print(f'Item {item_id} costs {price} USD.')

Output

Item P12305 costs 425.50 USD.

Evaluate an expression in a string:

Input

val1 = 2 val2 = 3 expr = f'The sum of {val1} + {val2} is {val1 + val2}' print(expr)

Output

The sum of 2 + 3 is 5

Calling a function and inserting output within a string:

Input

def sum(*args): result = 0 for arg in args: result += arg return result func = f'The sum of 3 + 5 is {sum(3, 5)}' print(func)

Output

The sum of 3 + 5 is 8

Joining the contents of a collection within a string:

Input

fruits = ['Apple', 'Banana', 'Pear'] list_str = f'List of fruits: {", ".join(fruits)}' print(list_str)

Output

List of fruits: Apple, Banana, Pear

Convert an integer to 8-bit binary

Input

num = 42 print(f'The binary of {num} is {num:08b}')

Output

The binary of 42 is 00101010

Using Object with f-strings

Input

class Book: def __init__(self, title, author): self.title = title self.author = author def __str__(self): return f"{self.title} by {self.author}" book = Book("A Clash of Kings", "George R. R. Martin") print(f"{book}")
Output
A Clash of Kings by George R. R. Martin

Sources

https://www.python.org/dev/peps/pep-0498/

This article needs improvement. You can help improve this article. You can also write similar articles and help the community.