Escape シーケンスは、文字列に特殊文字を含めることを可能にします。 これを行うには、単にエスケープしたい文字の前にバックスラッシュ (\
) を追加します。
たとえば、シングルクォートで文字列を初期化したとします:
s = 'Hey, whats up?'print(s)
Output:
Hey, whats up?
しかし、アポストロフィをエスケープせずに含むと、エラーになります:
s = 'Hey, what's up?'print(s)
Output:
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 stringscan be createdusing 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
Escape Sequence | Meaning |
---|---|
Thesis | バックスラッシュ (\ ) |
‘ | シングルクォート (' ) |
“ | ダブルクォート”。 quote (" ) |
amentn | ASCII Linefeed (adds newline) |
amentb | ASCII Backspace |
All list of escape sequences are provided in this in Python docs.