Pythonでのエスケープシーケンス

エスケープシーケンスを使用すると、文字列に特殊文字を含めることができます。これを行うには、エスケープ\する文字の前に円記号()を追加するだけです。

たとえば、文字列を一重引用符で初期化したとします。

s = 'Hey, whats up?' print(s)

出力:

Hey, whats up?

ただし、エスケープせずにアポストロフィを含めると、エラーが発生します。

s = 'Hey, what's up?' print(s)

出力:

 File "main.py", line 1 s = 'Hey, what's up?' ^ SyntaxError: invalid syntax

これを修正するには、アポストロフィをエスケープします。

s = 'Hey, what\'s up?' print(s)

文字列に改行を追加するには、次を使用します\n

print("Multiline strings\ncan be created\nusing escape sequences.")

出力:

Multiline strings can be created using escape sequences.

覚えておくべき重要なことは、文字列に円記号を含めたい場合は、それをエスケープする必要があるということです。たとえば、Windowsでディレクトリパスを出力する場合は、文字列内の各円記号をエスケープする必要があります。

print("C:\\Users\\Pat\\Desktop")

出力:

C:\Users\Pat\Desktop

生の文字列

生の文字列は、文字列と前置して使用することができますrまたはRバックスラッシュはエスケープする必要なしに含まれるようにすることができます。例えば:

print(r"Backslashes \ don't need to be escaped in raw strings.") 

出力:

Backslashes \ don't need to be escaped in raw strings.

ただし、生の文字列の最後にあるエスケープされていない円記号は、次の原因とエラーになることに注意してください。

print(r"There's an unescaped backslash at the end of this string\")

出力:

 File "main.py", line 1 print(r"There's an unescaped backslash at the end of this string\") ^ SyntaxError: EOL while scanning string literal

一般的なエスケープシーケンス

エスケープシーケンス意味
\バックスラッシュ(\
'一重引用符('
「」二重引用符("
\ nASCII改行(改行を追加)
\ bASCIIバックスペース

エスケープシーケンスの完全なリストは、Pythonのドキュメントにあります。