シングルクォート文字列とダブルクォート文字列
文字列リテラルは、文字列をシングルクォートかダブルクォートで囲みます。どちらを使ってもPythonは同じように扱います。
'Hello, world!'
"Hello, world!"
文字列にシングルクォートを含める場合はダブルクォートで囲み、ダブルクォートを含める場合にはシングルクォートで囲むのが便利です。シングルクォートやダブルクォートを含めるには、この後説明するエスケープシーケンスも使えます。
エスケープシーケンス
文字列リテラルの中にはエスケープシーケンスを使えます。
エスケープシーケンス | |
---|---|
意味 | |
\<改行> | バックスラッシュと改行文字が無視されます |
\\ | バックスラッシュ(\) |
\' | シングルクォート(') |
\" | ダブルクォート(") |
\a | ASCIIのベル(BEL) |
\b | ASCIIのバックスペース(BS) |
\f | ASCIIのフォームフィード(FF) |
\n | ASCIIの改行(LF) |
\r | ASCIIの復帰(CR) |
\t | ASCIIの水平タブ(TAB) |
\v | ASCIIの垂直タブ(VT) |
\ooo | 8進数値ooo(1桁から3桁)を持つUnicode文字 |
\xhh | 16進数値hhを持つUnicode文字 |
\N{name} | Unicodeデータベース中でnameという名前の文字 |
\uxxxx | 16ビットの16進値xxxxを持つUnicode文字 |
\Uxxxxxxxx | 32ビットの16進値xxxxxxxxを持つUnicode文字 |
次の例は2つの改行文字(\n)で区切られているので3行で表示される。
>>> print('"Line 1"\n"Line 2"\n"Line 3"')
"Line 1"
"Line 2"
"Line 3"
この例では文字列をシングルクウォートで囲っているので内側のダブルクォートをエスケープする必要はありません。ここでprint()を使っているのには理由がある。対話的インタープリタはプログラマ向けにエスケープシーケンスのいくつかをそのまま表示するからである。
>>> '"Line 1"\n"Line 2"\n"Line 3"'
'"Line 1"\n"Line 2"\n"Line 3"'
トリプルクウォート
3個のシングルクォート(''')や3個のダブルクォート(""")を使うこともできます。これらのトリプルクォート文字列の中にはシングルクォート、ダブルクォートそして改行文字列などをそのまま記述することができます。
poem = '''\
On Fame
What is the end of fame? 't is but to fill
A certain portion of uncertain paper:
Some liken it to climbing up a hill,
Whose summit, like all hills, is lost in vapor;
For this men write, speak, preach, and heroes kill,
And bards burn what they call their “ midnight taper,”
To have, when the original is dust,
A name, a wretched picture, and worse bust.'''