Python 文字列でパーセント演算子 (%) を使用すると、特に文字列の書式設定を操作する場合に、あいまいさが生じることがよくあります。この競合は、Python での % 文字のさまざまな使用法 (モジュロ演算子、文字列書式設定のプレースホルダー、および単純な文字として) が原因で発生します。パーセント文字処理の制御を維持するには、選択的エスケープが必要になります。
次のコードを検討してください:
test = "have it break." selectiveEscape = "Print percent % in sentence and not %s" % test
selectiveEscape を印刷するとき、次のような表示が予想されるかもしれません:
Print percent % in sentence and not have it break.
ただし、書式設定プレースホルダー (%s) に 2 つのパーセントが含まれているため、インタープリターはそれをモジュロ演算子として解釈し、TypeError をスローします。これは、文字列引数ではなく数値が必要であることを示しています。
これを解決するには、リテラルとして扱いたいパーセント文字を選択的にエスケープする必要があります。これは、2 つのパーセント記号 (%%) を使用して実現できます。これにより、最初のパーセント文字が書式設定プレースホルダーではなくエスケープ シーケンスとして解釈されます。
修正されたコード:
test = "have it break." selectiveEscape = "Print percent %% in sentence and not %s" % test
これらの調整により、出力は希望どおりに表示されるようになります:
Print percent % in sentence and not have it break.
この手法により、Python 文字列内のパーセント文字を選択的にエスケープでき、確実にプレースホルダーの書式設定ではなく、リテラル文字として解釈されること。
以上が「TypeError」を回避するために、Python 文字列フォーマットのパーセント記号をエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。