Home >Backend Development >Python Tutorial >How Do I Escape Percentage Signs in Python String Formatting to Avoid `TypeError`?

How Do I Escape Percentage Signs in Python String Formatting to Avoid `TypeError`?

Barbara Streisand
Barbara StreisandOriginal
2024-11-25 14:11:11320browse

How Do I Escape Percentage Signs in Python String Formatting to Avoid `TypeError`?

Escaping Percentages in Python Strings

Utilizing percent operators (%) in Python strings can often lead to ambiguity, especially when working with string formatting. The conflict arises due to the varying usage of % characters in Python: as a modulo operator, a string formatting placeholder, and as a simple character. To maintain control over percent character handling, selective escaping becomes necessary.

Consider the following code:

test = "have it break."
selectiveEscape = "Print percent % in sentence and not %s" % test

When printing selectiveEscape, you might anticipate seeing:

Print percent % in sentence and not have it break.

However, due to the double percent in the formatting placeholder (%s), the interpreter interprets it as a modulo operator and throws a TypeError indicating the need for a number instead of a string argument.

To resolve this, you must selectively escape the percent characters that you want to treat as literals. This can be achieved using double percent signs (%%), which ensure that the first percent character is interpreted as an escape sequence rather than a formatting placeholder.

The corrected code:

test = "have it break."
selectiveEscape = "Print percent %% in sentence and not %s" % test

With these adjustments, the output will now display as desired:

Print percent % in sentence and not have it break.

Through this technique, you can selectively escape percent characters in Python strings, ensuring that they are interpreted as literal characters rather than formatting placeholders.

The above is the detailed content of How Do I Escape Percentage Signs in Python String Formatting to Avoid `TypeError`?. 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