Python エスケープシーケンスとraw文字列のサンプル

Pythonのエスケープシーケンスのサンプルです。

確認環境
・Python 3.7.0

目次

エスケープシーケンス

  • エスケープシーケンスは、指定した文字に特殊な意味を持たせます。
  • 特殊な意味を持たせたい文字の前に円記号(バックスラッシュ)を付けます。
  • バックスラッシュ(円記号)の文字コードは、shift-jisでは0x5C、UnicodeではU+005Cです。
  • 以下は、公式のPythonの2.4.1. 文字列およびバイト列リテラルのリンクです。
    https://docs.python.org/ja/3.6/reference/lexical_analysis.html#string-and-bytes-literals

エスケープシーケンスの一覧

エスケープシーケンスの一覧です。

文字 説明
\'  シングルコーテーション
\" ダブルコーテーション 
\t タブ
\\ バックスラッシュ
\n 改行 (LF)
\r 復帰 (CR)
\0 Null文字
\f 改ページ
\ooo ASCII文字を表示
oooは3桁の8進数です。\101はAと表示されます。
\xhh ASCII文字を表示
hhは2桁の16進数です。\x41はAと表示されます。
\uxxxx Unicode文字を表示
xxxxは4桁の16進数です。\u0041はAと表示されます。

コード

エスケープシーケンスのサンプルです。

# coding: utf-8

# シングルコーテーションを表示
print ('あいう\'えお') #あいう'えお
print ("あいう'えお") #あいう'えお

# ダブルコーテーションを表示
print ("あいう\"えお") #あいう"えお
print ('あいう"えお') #あいう"えお

# タブを表示 
print ("あいう\tえお") #あいう  えお

# バックスラッシュを表示
print ("あいう\\えお") #あいう\えお

# 改行を行う
print ("あいう\nえお") #「う」の後に改行が入る

# Null文字を表示 
print ("あいう\0えお") #あいう えお

# 円記号(バックスラッシュ)と8進数3桁を指定
print ("\101") #A
print ("\101\102") #AB

# 円記号(バックスラッシュ)とxと16進数2桁を指定
print ("\x41") #A
print ("\x41\x42") #AB

# 円記号(バックスラッシュ)とuと16進数4桁を指定
print ("\u0041") #A
print ("\u0041\u0042") #AB

4行目はシングルコーテーションを、8行目はダブルコーテーションをエスケープしています。
文字列の開始と終了の機能ではなく、文字として表示しています。
5,9行目はエスケープシーケンスを使わない例です。
5行目は、ダブルコーテーションで括った中にシングルコーテーションがあります。
9行目は、シングルコーテーションで括った中にダブルコーテーションがあります。

 

エスケープシーケンスの文字を機能させない(raw文字列)

raw文字列を使うとエスケープシーケンスの文字を機能させずに表示できます。
raw文字列は文字列の先頭にrを追加します。

コード

raw文字列を使用するサンプルです。

# coding: utf-8

p1 = r"D:\test1\test1.txt"

print (p1) # D:\test1\test1.txt

3行目は、パスを設定しようとしています。文字列のダブルコーテーションの前にrをつけてraw文字列にしています。
5行目は、エスケープシーケンスの文字を機能させていません。意図した表示になっています。

raw文字列を使用しない場合

raw文字列を使用しない場合です。

# coding: utf-8

p3 = "D:\test1\test1.txt"

print (p3) # D: est1 est1.txt

3行目は、パスを設定しようとしています。
5行目は、3行目の\がエスケープシーケンスの文字として機能してしまい意図した表示になっていません。

エスケープシーケンスを使用する場合

エスケープシーケンスを使用する場合です。

# coding: utf-8

p2 = "D:\\test1\\test1.txt"

print (p2) # D:\test1\test1.txt

3行目は、エスケープシーケンスを使用するため\を2つ並べています。
5行目は、意図した表示になっています。

改行を含む文字列を扱う

改行を含む文字列を扱うサンプルです。

# coding: utf-8

print("""あ
い
う
""")

文字列に改行を含める場合、ダブルコーテーションまたはシングルコーテーションを3つ連続で記述して文字列を括ります。
実行すると以下のように文字列が改行されて表示されます。


関連の記事

Python 文字列の始め/終わりを確認する(startswith/endswith)
Python 文字を検索し値を返す(find/index)
Python 文字列を分割してリストにする(split)
Python 英字の大文字と小文字を変換(upper/lower/capitalize/swapcase/title)
Python 文字列の先頭と末尾を削除する(strip/lstrip/rstrip)

△上に戻る