PEP 498 introduced a new string formatting mechanism known as Literal String Interpolation or more commonly as F-strings (because of the leading f character preceding the string literal). The idea behind f-strings is to make string interpolation simpler.
To create an f-string, prefix the string with the letter “ f ”. The string itself can be formatted in much the same way that you would with str.format(). F-strings provide a concise and convenient way to embed python expressions inside string literals for formatting.
Code #1 :
Python3
# Python3 program introducing f-string val = 'Geeks' print (f "{val}for{val} is a portal for {val}." ) name = 'Tushar' age = 23 print (f "Hello, My name is {name} and I'm {age} years old." ) |
Output :
Lazyroar is a portal for Geeks. Hello, My name is Tushar and I'm 23 years old.
Code #2 :
Python3
# Prints today's date with help # of datetime library import datetime today = datetime.datetime.today() print (f "{today:%B %d, %Y}" ) |
Output :
April 04, 2018
Note : F-strings are faster than the two most commonly used string formatting mechanisms, which are % formatting and str.format().
Let’s see few error examples, which might occur while using f-string :
Code #3 : Demonstrating Syntax error.
Python3
answer = 456 f "Your answer is " {answer}"" |
Code #4 : Backslash Cannot be used in format string directly.
Python3
f "newline: {ord('\n')}" |
Output :
Traceback (most recent call last): Python Shell, prompt 29, line 1 Syntax Error: f-string expression part cannot include a backslash: , line 1, pos 0
But the documentation points out that we can put the backslash into a variable as a workaround though :
Python3
newline = ord ( '\n' ) print (f "newline: {newline}" ) |
Output :
newline: 10
Reference : PEP 498, Literal String Interpolation