【Python】エスケープシーケンス

python_logo

文字列で使えるエスケープシーケンスについてまとめました。

また、実際にどのように出力されるか確認するためのコードも置いてあります

どうぞご確認ください

エスケープシーケンスの種類

公式ドキュメントでは以下がエスケープシーケンスになります。

最後の3つは文字列でしか使えません(バイト列で使えないため)

エスケープシーケンス 意味
\newlineバックスラッシュと改行文字が無視されます
\\バックスラッシュ (\)
\’一重引用符 (‘)
\”二重引用符 (“)
\aASCII 端末ベル (BEL)
\bASCII バックスペース (BS)
\fASCII フォームフィード (FF)
\nASCII 行送り (LF)
\rASCII 復帰 (CR)
\tASCII 水平タブ (TAB)
\vASCII 垂直タブ (VT)
\ooo8 進数値 ooo を持つ文字
\xhh16 進数値 hh を持つ文字
\N{name}Unicode データベース中で name という名前の文字
\uxxxx16-bit の十六進値 xxxx を持つ文字
\Uxxxxxxxx32-bit の十六進値 xxxxxxxx を持つ文字

Pythonのドキュメント:2.字句解析より引用

エスケープシーケンスを確認してみよう

それぞれどのような出力になるのでしょうか?
以下のコードを実行してください。

どんな動きになるのかこれで分かったと思います!

注意点・Tips

\N{}に省略した形も指定可能に

Python3.3より\N{}に短縮系がつかえるようになりました。

以下のサイトを参照してください

参考:Unicode Consortium

認識できないエスケープシーケンス

現在認識できないエスケープシーケンス(存在しないやつ)はそのまま直接出力しています。ですが、これをPythonで無くしていきたいようです。

Python3.6より認識しないエスケープシーケンスにDeprecation Warningが発生するようになっています。

さらにPython3.8からSyntax Errorが出力される予定ですので気をつけましょう。

rで囲んで全てのエスケープシーケンスを無効

逆にエスケープシーケンスとみなされるのが嫌な場面が有ります。

特に正規表現やファイルを指定する時に一々スラッシュをエスケープするのはどんどうです。

r”<文字列>”のように囲めば、エスケープシーケンスを無効にします。
入力した内容がそのまま使用できますので便利です。

まとめ

いかがだったでしょうか?

エスケープシーケンスは一部に偏ってしますので、ここらで一つこんなのもあったんだなーというイメージ作りにつかってください!笑

それでは以上になります。

みなさんのPythonライフがよりよくなるように祈ってます!