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

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

Linda Hamilton
Release: 2024-10-18 12:03:15
Original
355 people have browsed it

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
Copy after login

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

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

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)
Copy after login

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))
Copy after login

New-style {} Formatting

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

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!

source:php
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template