前回は数値型について学びました。
今回は文字列型を見ていきます。
文字列型の使い方
文字列型はシングルクォートまたはダブルクォートで文字列をくくって表します。
message_1='hello world'
message_2="Hello world"
print(message_1)
print(message_2)
print("hello world")
どちらでくくってもよいのですが、ダブルクォートでくくる方が標準という見方もあるようです。
英文メッセージではアポストロフィーを使うことがあるので、文字列の開始・終了はダブルクォートを使っておいた方がよいかもしれませんね。たとえば次のようなエラーメッセージを表示させたいような場合です。
error_message="Error: can't open file"
print(error_message)

エスケープシーケンス
より柔軟に文字列を表示させるには、エスケープシーケンスが有効です。エスケープシーケンスとは、制御文字や特殊文字を文字列に挿入するためのタグのようなものです。
エスケープシーケンス | 意味 |
∖∖ | バックスラッシュ |
∖’ | シングルクォート |
∖” | ダブルクォート |
∖b | バックスペース |
∖f | フォームフィード(改ページ) |
∖n | 改行 |
∖r | キャリッジリターン |
∖ | 折り返し(バックスラッシュと改行文字を無視) |
∖t | 水平タブ |
∖v | 垂直タブ |
∖ooo | 8進数ooo表記の文字 |
∖xhh | 16進数表記hhの文字 |
∖uXXXX | 4桁の16進数表記によるUnicode文字 |
∖UXXXXXXXX | 8桁の16進数表記によるUnicode文字 |
∖N{name} | Unicodeの名前で指定された文字 |
フォームフィードは新しいページに移る指示を表します。キャリッジリターンではテキストカーソルをその行の先頭に戻します。タイプライターに由来しています。これらは古いプリンターやシステムで使われていたようですが、近ごろはあまり使い道がないかもしれません。
特定の文字を指定するエスケープシーケンスを詳しくみていきましょう。
∖oooの使い方-8進数表記による文字
∖oooでは8進数で文字を指定します。
print("∖101∖102∖103")
例えばこれは「ABC」を指定しています。
∖xhhの使い方-16進数表記による文字
∖xhhでは16進数で文字を指定します。数字を入れるのはhhの部分です。
print("∖x41∖x42∖x43")
例えばこれは「ABC」を指定します。

∖uXXXXの使い方-4桁の16進数によるUnicode文字
∖uXXXXは4桁の16進数でUnicodeの文字を指定します。数字を入れるのはXXXXの部分です。例えばUnicodeで3042は「あ」を表します。
print("∖u3042")
∖UXXXXXXXXの使い方-8桁の16進数によるUnicode文字
∖UXXXXXXXXは8桁の16進数でUnicodeの文字を指定します。数字を入れるのはXの部分です。先頭の大文字Uを小文字uにするとエラーになります。∖uXXXXの小文字のuも同様です。
print("∖U001F600")
実行するとスマイルの絵文字が表示されます。

∖N{name}の使い方-Unicodeの名前で指定された文字
∖N{name}ではUnicodeの名前をnameに入れて文字を指定します。例えばギリシャ文字のβを指定する場合は次のようになります。
print("∖N{GREEK SMALL LETTER BETA}")

ところでわざわざ8進数や16進数で文字を指定するというのはどのような場面でしょうか。例えば次のような状況が挙げられます。
- 非表示文字や制御文字を明示的に文字列に含めるとき
- バイナリデータを扱うとき(バイト値を正確に指定するとき)
- ファイルフォーマットやプロトコルのヘッダを統一するとき(可読性の向上)
- 絵文字やギリシャ文字など特殊文字を扱うとき
- 8進数が標準の古いシステムとの互換性を保つとき
- デバッグに利用するとき
今回は文字列型とエスケープシーケンスについて学びました。次回は特殊な文字列型を見ていきます。続く!