2章データ:型、値、変数、そして名前
令名は大いなる富にまさり、恩恵は銀や金よりも良い*1。
──箴言22章1節
*1 監訳注:日本聖書協会「口語訳聖書」より引用。
内部的には、コンピュータの中のすべてのものは、ビットのシーケンスに過ぎない(付録A参照)。コンピューティングでは、これらのビットをさまざまなサイズ、型のデータ(数値や文字)としても、コードそのものとしても好きなように解釈できる。これはコンピューティングの知恵の1つだ。Pythonを使えば、さまざまな目的でビットシーケンスのチャンクを定義し、CPUとの間でやり取りできる。
まず、Pythonのデータの型とさまざまな型のデータが格納できる値から見ていこう。次に、データをリテラル値や変数として表現する方法を考える。
2.1 Pythonのデータはオブジェクトである
コンピュータのメモリは、延々と続く棚と考えることができる。棚は細かい枠に分かれていて、枠の幅は1バイト(8ビット)になっている。そして、枠には0(先頭)から末尾まで番号が振ってある。今のコンピュータは、数十億バイト(数ギガバイト)ものメモリを搭載しているので、棚は相当巨大な倉庫に収められていることになる。
Pythonプログラムは、オペレーティングシステムからコンピュータのメモリの一部にアクセスすることを認められている。そのメモリは、プログラムのコード自体として、そしてプログラムが使うデータとして使われる。プログラムは、許可を得ない限り、それ以外のメモリを読み書きできない。オペレーティングシステムがそのような制御を行っている。
プログラムは、どこ(メモリ内での位置)に何(データ型)があるかを管理する。コンピュータから見れば、すべてただのビットだ。同じビットでも、私たちがそのビットの型を何と言うかによって別のものを意味することになる。同じビットパターンが整数の ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access