バックスラッシュが 2 回表示される理由
Python でバックスラッシュを含む文字列を保存すると、バックスラッシュが 2 回表示されることに気づくかもしれません。これは、__repr__() メソッドを使用して文字列表現を取得するときに発生します。代わりに print() を使用すると、意図したとおりバックスラッシュが 1 つだけであることがわかります。
>>> my_string = "why\does\it\happen?" >>> my_string 'why\does\it\happen?' >>> print(my_string) why\does\it\happen?
表現では 2 倍になっているにもかかわらず、その長さでわかるように、文字列自体には 1 つのバックスラッシュのみが含まれています。 :
>>> 'a\b' 'a\b' >>> len('a\b') 3
文字列の標準表現を取得するには、 repr() を利用します。 function:
>>> print(repr(my_string)) 'why\does\it\happen?'
バックスラッシュはエスケープ文字として機能するため、Python ではバックスラッシュを文字列内として表現します。たとえば、n は改行を表し、t はタブを表します。ただし、これにより意図しない動作が発生する可能性があります:
>>> print("this\text\is\not\what\it\seems") this ext\is ot\what\it\seems
バックスラッシュのリテラルの外観を指定するには、バックスラッシュを 2 倍にします:
>>> print("this\text\is\what\you\need") this\text\is\what\you\need
結論として、文字列表現を取得するとき、Python はエスケープします。安全のため、すべてバックスラッシュを使用します。ただし、実際の文字列にはバックスラッシュが 1 つだけ含まれています。 Python の文字列リテラルの詳細については、公式ドキュメントを参照してください。
以上がPython 文字列を表示するときにバックスラッシュが 2 重になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。