Python - String Formatting
String formatting in Python is the process of building a string representation dynamically by inserting the value of numeric expressions in an already existing string. Python’s string concatenation operator doesn’t accept a non-string operand. Hence, Python offers following string formatting techniques −
- Using % operator
- Using format() method of str class
- Using f-string
- Using String Template class
Using % operator
The ”%” (modulo) operator often referred to as the string formatting operator. It takes a format string along with a set of variables and combine them to create a string that contain values of the variables formatted in the specified way.
Example
To insert a string into a format string using the ”%” operator, we use “%s” as shown in the below example −
name = "TheMakPro"
print("Welcome to %s!" % name)
It will produce the following output −
Welcome to TheMakPro!
Using format() method
It is a built-in method of str class. The format() method works by defining placeholders within a string using curly braces ”{}”. These placeholders are then replaced by the values specified in the method’s arguments.
Example
In the below example, we are using format() method to insert values into a string dynamically.
str = "Welcome to {}"
print(str.format("TheMakPro"))
On running the above code, it will produce the following output −
Welcome to TheMakPro
Using f-string
The f-strings, also known as formatted string literals, is used to embed expressions inside string literals. The “f” in f-strings stands for formatted and prefixing it with strings creates an f-string. The curly braces ”{}” within the string will then act as placeholders that is filled with variables, expressions, or function calls.
Example
The following example illustrates the working of f-strings with expressions.
item1_price = 2500
item2_price = 300
total = f'Total: {item1_price + item2_price}'
print(total)
The output of the above code is as follows −
Total: 2800
Using String Template class
The String Template class belongs to the string module and provides a way to format strings by using placeholders. Here, placeholders are defined by a dollar sign ($) followed by an identifier.
Example
The following example shows how to use Template class to format strings.
from string import Template
# Defining template string
str = "Hello and Welcome to $name !"
# Creating Template object
templateObj = Template(str)
# now provide values
new_str = templateObj.substitute(name="TheMakPro")
print(new_str)
It will produce the following output −
Hello and Welcome to TheMakPro !