Home  >  Article  >  Backend Development  >  How to Correct String Formatting Error When Mixing % and {} Placeholders?

How to Correct String Formatting Error When Mixing % and {} Placeholders?

Linda Hamilton
Linda HamiltonOriginal
2024-10-18 12:03:15215browse

How to Correct String Formatting Error When Mixing % and {} Placeholders?

Error in String Formatting Using % and {}

While attempting to format strings using placeholders like {0}, you may encounter the error "TypeError: not all arguments converted during string formatting." This error arises due to a misunderstanding of the syntax differences between old-style % formatting and new-style {} formatting.

Old-Style % Formatting

The old-style % formatting technique employs placeholder codes% to format strings. For single values, they can be written as is:

'It will cost $%d dollars.' % 95

For multiple values, they must be supplied as a tuple:

"'%s' is longer than '%s'" % (name1, name2)

New-Style {} Formatting

The new-style {} formatting uses placeholder codes {} and the .format method. Here's the key difference: you cannot mix and match the two styles. If the "template" string contains {} placeholders, then call .format, don't use %.

'It will cost ${0} dollars.'.format(95)

"'{0}' is longer than '{1}'".format(name1, name2)

Correcting the Code

To address the error in the given code, you can either use % formatting consistently or switch to {} formatting:

Old-style % Formatting

print ("'{0}' is longer than '{1}'"% (name1, name2))

New-style {} Formatting

print ("'{0}' is longer than '{1}'".format(name1, name2))

The above is the detailed content of How to Correct String Formatting Error When Mixing % and {} Placeholders?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn