Home  >  Article  >  Backend Development  >  When Should I Use \'{}\' Placeholders with .format() Instead of \'%s\' for String Formatting in Python?

When Should I Use \'{}\' Placeholders with .format() Instead of \'%s\' for String Formatting in Python?

Barbara Streisand
Barbara StreisandOriginal
2024-10-18 12:54:30719browse

When Should I Use \'{}\' Placeholders with .format() Instead of \'%s\' for String Formatting in Python?

String Formatting in Python: Understanding '%s' Placeholders

When attempting to substitute placeholders like {0} using % formatting, you may encounter the error "TypeError: not all arguments converted during string formatting." This error often occurs due to mismatches between old-style and new-style string formatting methods.

Old-style % formatting uses % codes for formatting, where each value is specified as follows:

<code class="python">'It will cost $%d dollars.' % 95</code>

Multiple values require a tuple:

<code class="python">&quot;'%s' is longer than '%s'&quot; % (name1, name2)</code>

New-style {} formatting, on the other hand, utilizes {} codes and the .format method:

<code class="python">'It will cost ${0} dollars.'.format(95)</code>
<code class="python">&quot;'{0}' is longer than '{1}'&quot;.format(name1, name2)</code>

To fix the error in the provided code, you should use {} placeholders and call the .format method:

<code class="python">print("'{0}' is longer than '{1}'".format(name1, name2))</code>

By following these guidelines, you can ensure proper string formatting and avoid the "TypeError: not all arguments converted during string formatting" error.

The above is the detailed content of When Should I Use \'{}\' Placeholders with .format() Instead of \'%s\' for String Formatting in Python?. 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