DEV Community

Cover image for Learn Python: Formatting strings
Rishi
Rishi

Posted on • Edited on

Learn Python: Formatting strings

f-strings

Available in Python version 3.6 and above.
To avoid string concatenations, we can use f-string to 'inject' values within a string via variables.

Pre-pending an f before a string will cause the variable between {} to be evaluated.

# f-strings
year = 2020
print(f"The year is {year}")
print(f'The year is {year}')

question = f"Which year comes after {year}?"
print(question)
Enter fullscreen mode Exit fullscreen mode

Updating the variable after 'f-string' has been evaluated.

Since the f-string has been evaluated with the variable year set to 2020. Re-assigning it to a new value 9999 afterwards will not update the f-string automatically.

# f-strings
# Updating variable value after assignment.
year = 2020
message = f"The year is {year}."
print(message)

year = 9999
print(message)
Enter fullscreen mode Exit fullscreen mode

Using string.format()

Another way of formatting a string is by using string.format().
Passing the variable name to format(name), will inject its value into the {} of the variable template.

name = 'Rishi'
template = 'How are you {}?'
fomatted_greeting = template.format(name)
print(fomatted_greeting)

name = 'Abee'
fomatted_greeting = template.format(name)
print(fomatted_greeting)
Enter fullscreen mode Exit fullscreen mode

Using named variables

Using named variables makes the template more readable.

name1 = 'Rishi'
name2 = 'Abee'
template = 'How are you {x} {y}?'
fomatted_greeting = template.format(x=name1, y=name2)
print(fomatted_greeting)
Enter fullscreen mode Exit fullscreen mode

f-strings v/s string.format()

f-strings is very common in Python.
But if you have a template and you want to re-use it, string.format() comes in very handy.



Top comments (0)