'Python 3 f-string alternative in Python 2

Mostly I work with Python 3. There can I write this:

print(f"The answer is {21 + 21}!")

Output:

The answer is 42!

But in Python 2, f-strings do not exist. So is the following the best way?

print("the answer is " + str(21 + 21) + "!")


Solution 1:[1]

Using format:

print("the answer is {} !".format(21 + 21))

Solution 2:[2]

There are two ways

>>> "The number is %d" % (21+21)
'The number is 42'
>>> "The number is {}".format(21+21)
'The number is 42'

Solution 3:[3]

You can use the fstring library

pip install fstring

>>> from fstring import fstring as f
>>> a = 4
>>> b = 5
>>> f('hello result is {a+b}')
u'hello result is 9'

Solution 4:[4]

Actually, you can use the .format() method for readability, and it is the where the f-string comes from.

You can use:

print("the answer is {}!".format(21+21))

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 VnC
Solution 2 Shuvojit
Solution 3 RinSlow
Solution 4 Peter Mortensen