The function of formatting strings is included in many programming languages, such as formatted input and output in C and Fortran languages. The built-in operator for formatting strings in Python is "%".
Template
When formatting a string, Python uses a string as a template. Templates have formatters that reserve space for real values and describe the format in which real values should appear. Python uses a tuple to pass multiple values to the template, each value corresponding to a format character.
For example, the following example:
print("I'm %s. I'm %d" % ('Pythontab', 1))
In the above example,
"I'm %s. I 'm %d" is our template. %s is the first format character, representing a string. %d is the second format character, representing an integer. The two elements 'Pythontab' and 99 of ('Pythontab',99) are the real values that replace %s and %d.
Between the template and the tuple, there is a % sign separating it, which represents the formatting operation.
The entire "I'm %s. I'm %d" % ('Pythontab', 1) actually constitutes a string expression. We can assign it to a variable just like a normal string. For example:
a = "I'm %s. I'm %d" % ('Pythontab', 1)
print(a)
The result is: I'm Pythontab. I'm 1
us Dictionaries can also be used to pass real values. As follows:
print("I'm %(name)s. I'm %(age)d" % {'name':'Pythontab', 'age':99})
You can see that we Two format characters are named. Names are enclosed in (). Each name corresponds to a key in the dictionary.
Format Characters
Format characters reserve space for real values and control the format of display. The format character can contain a type code to control the type of display, as follows:
%s String (displayed using str())
%r String (displayed using repr())
%c Single character
%b Binary integer
%d Decimal integer
%i Decimal integer
%o Octal integer
%x Hexadecimal integer
%e Exponent (base written as e)
%E Exponent (the base is written as E)
%f Floating point number
%F Floating point number, the same as above
%g Exponent (e) or floating point number (according to the display length)
%G Exponent (E) or floating point number (According to the display length)
%% The character "%"
can be further controlled in the format as follows:
%[(name)][flags][width].[precision]typecode
( name) is named
flags can have +, -, ' ' or 0. + means right alignment. - means left alignment. ' ' is a space, which means padding a space to the left of the positive number to align it with the negative number. 0 means use 0 padding.
width represents the display width
precision represents the precision after the decimal point
For example:
print("%+10x" % 10)
print("%04d" % 5)
print("%6.3f" % 2.3)
The width and precision above are two integers. We can use * to dynamically substitute these two quantities. For example:
print("%.*f" % (4, 1.2))
Python actually replaces * with 4. So the actual template is "%.4f".
Summary
The built-in % operator in Python can be used to format string operations and control the presentation format of strings. There are other ways to format strings in Python, but using the % operator is the most convenient.