2章データ:型、値、変数、そして名前

令名は大いなる富にまさり、恩恵は銀や金よりも良い*1

──箴言22章1節

*1 監訳注:日本聖書協会「口語訳聖書」より引用。

 内部的には、コンピュータの中のすべてのものは、ビットのシーケンスに過ぎない(付録A参照)。コンピューティングでは、これらのビットをさまざまなサイズ、型のデータ(数値や文字)としても、コードそのものとしても好きなように解釈できる。これはコンピューティングの知恵の1つだ。Pythonを使えば、さまざまな目的でビットシーケンスのチャンクを定義し、CPUとの間でやり取りできる。

 まず、Pythonのデータのとさまざまな型のデータが格納できるから見ていこう。次に、データをリテラル値や変数として表現する方法を考える。

2.1 Pythonのデータはオブジェクトである

 コンピュータのメモリは、延々と続く棚と考えることができる。棚は細かい枠に分かれていて、枠の幅は1バイト(8ビット)になっている。そして、枠には0(先頭)から末尾まで番号が振ってある。今のコンピュータは、数十億バイト(数ギガバイト)ものメモリを搭載しているので、棚は相当巨大な倉庫に収められていることになる。

 Pythonプログラムは、オペレーティングシステムからコンピュータのメモリの一部にアクセスすることを認められている。そのメモリは、プログラムのコード自体として、そしてプログラムが使うデータとして使われる。プログラムは、許可を得ない限り、それ以外のメモリを読み書きできない。オペレーティングシステムがそのような制御を行っている。

 プログラムは、どこ(メモリ内での位置)に(データ型)があるかを管理する。コンピュータから見れば、すべてただのビットだ。同じビットでも、私たちがそのビットの型を何と言うかによって別のものを意味することになる。同じビットパターンが整数の ...

Get 入門 Python 3 第2版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.