今回はエスケープシーケンスとraw文字列を用いた文字列について扱っていきます。どちらも聞きなれない言葉だと思いますので、まずは用語の説明から入りたいと思います。
エスケープシーケンスとは
エスケープシーケンスとは通常、文字列では表せない文字列やその機能の事を言います。代表的なものは改行です。改行はwordであれば「←」みたいな文字であらわされますが、矢印を入力しても改行はされないですよね。Pythonで改行をエンターキーで入力しても出力に反映されません。そのため、特殊な文字列の組み合わせで改行を表現します。
改行のエスケープシーケンスは「\n」です。例えば「こんにちは\n今日はいい天気ですね。」をそのままprint関数で出力すると以下のようになります。
1 |
print("こんにちは。\n今日はいい天気ですね") |

実行してみて改行されていることがわかりましたでしょうか。これがエスケープシーケンスです。
改行以外にも様々な種類のものがございますので、表でまとめて確認しましょう。
エスケープシーケンス | 意味 |
\newline | バックスラッシュと改行文字が無視されます |
\\ | バックスラッシュ (\) |
\’ | 一重引用符 (‘) |
\” | 二重引用符 (“) |
\a | ASCII 端末ベル (BEL) |
\b | ASCII バックスペース (BS) |
\f | ASCII フォームフィード (FF) |
\n | ASCII 行送り (LF) |
\r | ASCII 復帰 (CR) |
\t | ASCII 水平タブ (TAB) |
\v | ASCII 垂直タブ (VT) |
\ooo | 8 進数値 ooo を持つ文字 |
\xhh | 16 進数値 hh を持つ文字 |
すべて、「\(バックスラッシュ)」を前に添えているのがわかりますね。ここでは「\」となっておりますが、GooleColabで書くと”¥”になったりします。環境によって表示される文字が違いますが、同じものですので円マークでもバックスラッシュでもどちらでも使えます。因みにここに記載している円マークは環境依存文字というまた特殊なものですので、Colab等で記載しても反映されませんのでご注意ください
raw文字列について
raw文字列とは文字列の組み合わせ上エスケープシーケンスとなってしまう文字列をエスケープシーケンスとして解釈されたくない時に用いるものです。エスケープシーケンスは”\”とある特定の組み合わせで表現されるものと上記で紹介しましたが、どんな時に弊害が生じるか考えてみましょう。例えば変数の中にファイルパスを格納したいときにこの問題は生じます。Pythonで取得したテストのエビデンスを「C:\pitures\test\evidence」に吐き出したくて初期化で変数にパスを格納したとします。
1 |
path = "C:\pictures\test\evidence" |
これを実際に出力すると「¥t」の部分がタブコードと解釈され想定していない文字列になってしまいます。
1 2 |
path = "C:\pictures\test\evidence" print(path) #\tが勝手にタブになってしまう |


これを回避するためにraw文字列を付与します。方法は文字列を定義する際に文字列の頭に「r」を付け加えるだけです。
1 2 |
path = r"C:\pictures\test\evidence" #先頭に"r"を加える print(path) #タブに変換されない! |


エスケープシーケンスの回避方法はraw文字列以外にもありますが、raw文字列が単純かつ読みやすいのでこれを覚えておけば良いと思います。
今回の記事はここまでです。
お疲れ様でした。
コメント