文字列にたいする入力構文は"like
this"
のようにダブルクォート、任意個数の文字、もう1つのダブルクォートから構成されます。文字列内にダブルクォートを含める場合は、それの前にバックスラッシュを記述します。したがって"\""
は1つのダブルクォート文字だけを含む文字列です。同様にバックスラッシュを含める場合は、"this
\\ is a single embedded backslash"
のように、それの前にもう1つのバックスラッシュを記述します。
文字列とは文字の配列のことなので、文字の読み取り構文を用いて先頭のクエスチョンマークなしで文字列を指定できます。これは自分自身を意味しないような文字を文字列に含める際に役に立ちます。たとえばコントロール文字はバックスラッシュで始まるエスケープシーケンスで指定できるので、"foo\r"
とすれば‘foo’の後にキャリッジリターンを指定できます。その他のコントロール文字のエスケープシーケンスについては基本的な文字構文を参照してください。同様に"foo\^Ibar"
のようにタブ文字を生成する特別な読み取り構文を用いて、文字列内にコントロール文字を埋め込むことができます(コントロール文字構文を参照)。"\N{LATIN SMALL LETTER A WITH GRAVE}"
や"\u00e0"
のようにして、一般的なエスケープ構文で記したような非ASCII文字用のエスケープシーケンスを用いることもできます(ただし文字列内の非ASCII文字の非ASCII文字にたいする注意事項を参照のこと)。
文字列にたいする入力構文では、改行(newline)は特別ではありません。ダブルクォートの間に改行を記述すれば、その改行は文字列内の文字となります。しかしエスケープされた改行 — 前に‘\’をともなう改行 — は文字列の一部とはなりません。同様にエスケープされたスペース‘\ ’も無視されます。
"It is useful to include newlines in documentation strings, but the newline is \ ignored if escaped." ⇒ "It is useful to include newlines in documentation strings, but the newline is ignored if escaped."