13.1 エスケープシーケンス一覧
エスケープシーケンスは、コンピューター技術の初期にテキストストリングに制御コードを挿入する手段として登場したんだよ。 歴史的に見ると、これはプリンターやテレタイプのような装置を制御するために使用されてたんだ。例えば、改行やキャリッジリターンなどのコマンドをデータストリームに直接挿入できるようにするためね。
プログラミングが発展していく過程で、これらのシンボルはCをはじめとする標準的なプログラミング言語に組み込まれるようになった。それがPythonや他の言語にも引き継がれたんだ。Pythonでのエスケープシーケンスはバックスラッシュ\
で始まり、その機能を定義するシンボルが続くよ。例えば、改行は\n
だね。
Pythonでのエスケープシーケンスは文字列の処理において重要な役割を果たしていて、通常では文字列に直接含めるのが難しい、あるいは不可能な特殊文字を挿入することができるんだ。
以下はよく使われるエスケープシーケンスの一覧表だよ。
エスケープシーケンス | 説明 |
---|---|
\\ |
バックスラッシュ。 |
\' |
シングルクォート。 |
\" |
ダブルクォート。 |
\n |
改行。 |
\r |
キャリッジリターン。 |
\t |
水平タブ。 |
\b |
バックスペースで、前の文字を削除。 |
\f |
フォームフィード。 |
\a |
ベル音。 |
フォームフィードとベル音は、プリンターやテレタイプでテキストを出力していた時代の名残だけど、歌の中の言葉のように削除することはできないよね。
でも、水平タブなんかはコードの整列に頻繁に使われるよ。
13.2 Unicodeシンボルの挿入
コンピュータの発明当初、コンピュータはラテン文字、数字、少しの記号しか扱えなかったんだ。最初の文字セット(ASCIIコード)は、ページ送りのような制御文字を含むわずか128文字だったんだよ :)
Unicodeのアイディアは、1987年にXeroxのジョー・ベッカーとAppleのリー・コリンズが、世界中の全ての文字セットをサポートする新しいエンコーディングシステムの可能性について話し合ったときに生まれたんだ。
彼らはUnicodeを16ビットのシステムとして考えていて、65,536のユニークなシンボルを使えると信じていた。全ての既知のスクリプトをカバーするには十分だと思ってたんだけど、もちろんそう簡単にはいかなかったね :)
時間とともに、Unicodeは言語スクリプトだけでなく、豊富なシンボルセット、絵文字、歴史的なテキストも含むように拡張されたんだ。2020年3月にリリースされたUnicode 13.0は、150以上のスクリプトと多くのシンボルセットをカバーし、143,000以上のシンボルを含む、デジタル時代の複雑なエンコーディングシステムになっているんだ。
Unicodeは2000年10月にリリースされたPython 2.0で追加されたんだ。この重要な変更により、Pythonは国際的な言語とシンボルをより良くサポートできるようになり、国際的なアプリケーションの開発がより簡単になったんだ。
PythonコードファイルのエンコーディングはUnicodeをサポートしていて、どの言語のシンボルでもテキストに挿入できるんだ:
print("Come to the Dark Side") # 英語
print("Ven al Lado Oscuro") # スペイン語
print("Komm auf die dunkle Seite") # ドイツ語
print("暗黒面に来なさい") # 日本語
print("来到黑暗面") # 中国語
16進エンコーディングを使ってUnicodeの番号でシンボルをテキストに挿入できるよ:
エスケープシーケンス | 説明 |
---|---|
\\uXXXX | 16ビットの16進数値XXXXを持つUnicodeシンボル。 |
\\UXXXXXXXX | 32ビットの16進数値XXXXXXXXを持つUnicodeシンボル。 |
13.3 絵文字の挿入
Pythonのテキストやコードに絵文字やエモジを挿入するのは、メッセージの視覚的認識や感情的内容を向上させる面白い方法かもね。絵文字はUnicodeシンボルで、Pythonの文字列データに直接追加できるんだ。
Pythonでは、Unicodeの標準を使って絵文字がサポートされていて、絵文字を挿入するために特別なことをしなくてもいいんだよ。絵文字にはそれぞれユニークなUnicode番号があって、それを使ってテキストに挿入できるんだ。
絵文字の挿入例
インターネットから絵文字をコピーしてテキストに貼り付けるだけでいいんだ
# 絵文字の出力例
print(" 😀 ") # 出力されるのは😀
Unicodeを使った絵文字の挿入例
絵文字のコードを知っていれば、文字列にプレフィックスu
をつけて使えばいいんだ:
# 絵文字の出力例
print(u"\U0001F600") # 😀
ライブラリを使った方法
emojiのようなライブラリを使えば、絵文字の取り扱いが簡単になるよ:
# emojiライブラリの使用例
from emoji import emojize
print(emojize(":grinning_face:"))
絵文字はモバイルやWebアプリで広く使われているけど、Pythonも例外じゃない。チャットボット、フォーラム、コメント、その他のユーザーインターフェースに理解しやすさや感情的表現力を追加できるんだ。
GO TO FULL VERSION