String formatting with variables
The method to use is: str.format
(*args, **kwargs)
Perform a string formatting operation. The string on which this method is called can contain literal text or replacement fields delimited by braces {}
. Each replacement field contains either the numeric index of a positional argument, or the name of a keyword argument. Returns a copy of the string where each replacement field is replaced with the string value of the corresponding argument.>>>
>>> "The sum of 1 + 2 is {0}".format(1+2) 'The sum of 1 + 2 is 3'
See Format String Syntax for a description of the various formatting options that can be specified in format strings.
Note
When formatting a number (int
, float
, complex
, decimal.Decimal
and subclasses) with the n
type (ex: '{:n}'.format(1234)
), the function temporarily sets the LC_CTYPE
locale to the LC_NUMERIC
locale to decode decimal_point
and thousands_sep
fields of localeconv()
if they are non-ASCII or longer than 1 byte, and the LC_NUMERIC
locale is different than the LC_CTYPE
locale. This temporary change affects other threads.
Changed in version 3.7: When formatting a number with the n
type, the function sets temporarily the LC_CTYPE
locale to the LC_NUMERIC
locale in some cases.
my_num = 5
my_str = "Hello"
f = "my_num is {}, and my_str is \"{}\".".format(my_num, my_str)
print(f)
Will print:
my_num is 5, and my_str is "Hello".
To format a string with variables, you can either use keyword arguments in .format
('Insert {n} here'.format(n=num)
), refer to them by position index explicitly (like 'Insert {0} here'.format(num)
) or implicitly (like 'Insert {} here'.format(num)
). You can use double quotation marks inside single quotation marks and the way around, but to nest the same set of quotation marks, you need to escape them with a slash like \"
.