Open In App
Related Articles

Pad or fill a string by a variable in Python using f-string

Improve Article
Save Article
Like Article

f-string stands for formatted string. It had come up by Python Version 3.6 and rapidly used to do easy formatting on strings. F-string is a string literal having syntax starts with f and followed by {}. That placeholder used for holding variable, that will be changed upon the variable names and their values respectively.

There are already strings formats available like %-formatting, str.format(), or string.Template(). The main disadvantage of using these existed is that it is not well – easy to execute the implementation, so Python added up f-string due to its easiness of implementation with minimal syntax.

Consider this for example for all the 3 variants :
1. Using %-formatting

name = 'nightfury1'
print('%s is GeeksforGeeks a contributor' % (name))

Output :

nightfury1 is GeeksforGeeks a contributor.

2. Using str.format()

name = 'nightfury1'
print('{} is GeeksforGeeks a contributor.'.format(name))

Output :

nightfury1 is GeeksforGeeks a contributor.

3. Using f-string

name = 'nightfury1'
print(f'{name} is GeeksforGeeks a contributor.')

Output :

nightfury1 is GeeksforGeeks a contributor.

Approaches using f-string :

1. f-string expressions : It evaluates the string inside {} and returns the value.

name = 'nightfury1'
post = 'Technical Content Writer Intern.'
print(f'{name} is GeeksforGeeks {post}')

Output :

nightfury1 is Geeksforgeeks Technical Content Writer Intern

2. f-string dictionaries : Since the dictionary contains key-value property. Hence, f-string use properties of a dictionary for string formatting.

GfG = {'name' : 'nightfury1',
       'post' : 'Technical Content Writer Intern'}
print(f'{GfG["name"]} is GeeksforGeeks {GfG["post"]}.')


nightfury1 is Geeksforgeeks Technical Content Writer Intern.

3. f-string debug : Debugging the value inside the given expression evaluates output.

import math
x = 0.5
print(f'math.cos({x}) = {math.cos(x)}')
print(f'math.sin({x}) = {math.sin(x)}')

Output :

math.cos(0.5) = 0.8775825618903728
math.sin(0.5) = 0.479425538604203

4. f-string multiline : The f-strings are placed between round brackets so it evaluates them, each of the string is preceded with the f character and returns the result in multiple lines.

name = 'nightfury1'
org = 'GeeksforGeeks'
post = 'Technical Content Writer Intern'
gfg = (f'Name : {name}\n'
       f'Organization : {org}\n'
       f'Post : {post}.')

Output :

Name : nightfury1
Organization : GeeksforGeeks
Post : Technical Content Writer Intern.

Padding and filling using f-string :

We can input and specify the format with digits after decimal or certain given number or DateTime, this is called f-string padding.

1. 0-padding : Here, we apply 0-padding by adding {variable : 0N} inside the f-string {} syntax, where N refers the total no. of digits.

for i in range(1, 5):
    print(f'The number is {i:02}')

Output :

The number is 01
The number is 02
The number is 03
The number is 04

2. date-padding : Here, we also format the dates by using the DateTime module and adding up the desired format in {} like {date : directive}.

import datetime
now =
print(f'Current Time : {now : %Y-%m-%d %H:%M}')


Current Time :  2020-08-02 19:34

3. space-padding : Here, we apply spaces to a string like {variable : N} where N is total length. So if the given variable is ‘a’ and N is 4 then it will add extra spaces before the given variable.

for i in range(1, 5):
    print(f'The number is {i : 4}')


The number is    1
The number is    2
The number is    3
The number is    4

4. justify-padding : As we know that by default strings are justified to the left. But with the help f-strings, we can justify them right by using {variable : >N} where N is the total length.

s1 = 'Geeksforgeeks'
s2 = 'ksforgeeks'
s3 = 'forgeeks'
s4 = 'geeks'
print(f'{s1 : >13}')
print(f'{s2 : >13}')
print(f'{s3 : >13}')
print(f'{s4 : >13}')

Output :


We can input and specify the format with digits or symbols before and after the given string, this is called f-string filling.

1. hardcoded – filling : Here we add the symbol or filler as hardcoded in f-string syntax.

# left filling
print(f'{"geeks" :*>15}')
# right filling
print(f'{"geeks" :*<15}')



2. variable – filling: Here we used f-string filling curly braces expression within the print() function.

width = 15
filler = '*'
for i in range(6, width):
    print(f'{"geeks" :{filler}<{i}}')



Advantages of f-strings :

  1. It is the fastest string formatting method in Python.
  2. It is more readable.
  3. It is concise in nature.
  4. It is less prone to error which means there are fewer chances of error while strings formatting.
  5. It is less verbose i.e., contains less syntax in formatting.

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 18 Aug, 2020
Like Article
Save Article
Similar Reads
Complete Tutorials