Python の生の文字列と Unicode 文字列
Python の生の文字列
Python の生の文字列リテラルは、開始引用符の前に r
または R
のいずれかが前に付いた通常の文字列を定義します。文字列にバックスラッシュ(\
)が含まれている場合、生の文字列はこの文字をリテラル文字として扱いますが、エスケープ文字としては扱いません。
例えば、
print(r"\n")
print(r"\t")
出力:
\n
\t
文字列を定義するときは、改行や新しいタブなどのエスケープシーケンスの開始と間違えられないように、すべてのバックスラッシュを 2 倍にする必要があります。このような構文アプリケーションは、正規表現の構文や Windows ファイルパスを表現するときに見られます。
注:
r
はバックスラッシュをリテラルとして扱うため、r'\'
は構文エラーを発生させます。r
プレフィックスがない場合、バックスラッシュはエスケープ文字として扱われます。
例:
text = "Hello\nWorld"
print(text)
出力:
Hello
World
生の文字列フラグ r
がない場合、バックスラッシュはエスケープ文字として扱われるため、上記の文字列が出力されると、新しい行のエスケープシーケンスが生成されます。したがって、テキスト内の 2つの文字列は、出力に表示されるように、別々の行に出力されます。
同じテキストの例を使用して、文字列の前に r
プレフィックスを追加します。
例:
text = r"Hello\nWorld"
print(text)
出力:
Hello\nWorld
出力から、生の文字列フラグはバックスラッシュをリテラルとして扱い、バックスラッシュが含まれているテキストを出力します。したがって、バックスラッシュはエスケープされないため、入力と出力はどちらも同じです。
たとえば、'\\n'
と r'\n'
の値は同じです。
print("\\n")
print(r"\n")
Python Unicode 文字列
Unicode は、Python 文字列を格納する 1つの方法です。Unicode は、すべての言語タイプの文字列を格納できます。2 番目の方法は、Python で str
として表される ASCII
タイプの文字列ストレージです。str
は、Python で文字列を格納するためのデフォルトのデータ型です。
文字列を Unicode タイプに変換するには、次のようにテキストの前に u
を配置します-u'string'
またはこのように unicode()
関数を呼び出します-unicode('string')
。
u'text'
は Unicode 文字列であり、text
はバイト文字列です。Unicode オブジェクトはより多くのメモリスペースを必要とします。
例えば、
test = u"一二三"
print(test)
出力:
一二三