Pythonの型(データ型)
Pythonの型(データ型)は、プログラムが扱う「値の種類」を定義する非常に重要な要素です。Pythonは**「すべてがオブジェクト」**という設計思想を持っているため、基本型であっても強力なメソッドを持っています。
ご質問いただいた項目を中心に、主要な型を体系的に整理して解説します。
1. 数値型 (Numeric Types)
数値を扱うための型です。
int (整数): 大きさの制限がなく、メモリが許す限り巨大な数値も扱えます。
float (浮動小数点数): 小数を含む数値。
bool (真偽値):
TrueまたはFalse。内部的にはintのサブクラスで、1と0として扱われます。complex (複素数):
3 + 4jのように、虚数単位jを用いて表します。
2. シーケンス型 (Sequence Types)
データの「並び」を管理する型です。
list (リスト): 順序があり、中身を変更できる(ミュータブル)。
[1, 2, 3]tuple (タプル): 順序があるが、一度作ると中身を変更できない(イミュータブル)。
(1, 2, 3)range: 数値の連番を効率よく生成する型。主にループで使用します。
str (文字列): 文字の並び。実はこれもシーケンス型の一種(イミュータブル)です。
3. 集合型 (Set Types)
set (セット): 重複を許さず、順序を持たない集合。
{1, 2, 3}。数学の集合演算(和集合、積集合など)が得意です。frozenset: 内容を変更できないセットです。
4. マッピング型 (Mapping Types)
dict (辞書): 「キー(Key)」と「値(Value)」をペアで管理します。
{"name": "Alice", "age": 25}。非常に高速に検索が可能です。
5. クラスとインスタンス (Class & Instance)
これらは「型そのもの」というより、**「独自の型を作る仕組み」**です。
クラス (Class): 設計図です。「人間」という概念を定義します。
インスタンス (Instance): 設計図から実体化したもの。概念としての「人間」ではなく、具体的な「田中さん」というオブジェクトです。
type()関数を使うと、そのインスタンスがどのクラスから作られたか(=型)を確認できます。
6. 例外 (Exceptions)
プログラムの実行中に発生するエラーも「型」として定義されています。
Exception: すべての例外の親クラス。
ValueError, TypeError, IndexError: 具体的なエラーの種類ごとに型が存在し、これを利用してエラーハンドリング(
try...except)を行います。
7. その他、重要な型
ご質問のリスト以外にも、実戦で必ず遭遇する型があります。
バイナリシーケンス
画像データや通信データを扱うための型です。
bytes: 変更不能なバイナリデータ。
bytearray: 変更可能なバイナリデータ。
None型
NoneType: 「何も値がないこと」を表す特殊な型
Noneのための型です。
呼び出し可能型 (Callable)
関数やメソッド: 実は関数自体も「型」を持っており、変数に代入したり引数として渡したりできます。
まとめ:型の関係図
| 分類 | 型名 (Python表記) | 特徴 |
| 数値 | int, float, bool | 計算に使用 |
| シーケンス | list, tuple, str, range | 順番に並んだデータ |
| 集合 | set | 重複なし、順序なし |
| マッピング | dict | キーと値のペア |
| バイナリ | bytes | 画像やファイルデータ |
| 特殊 | NoneType | 「空」の状態 |
📋
Pythonは「動的型付け言語」なので、変数を作る際に型を宣言する必要はありませんが、type()関数を使って「今、この変数は何型か?」を確認する癖をつけると上達が早くなります。
特定の型について、具体的な「書き方(コード例)」や「使い分け」を詳しく知りたいものはありますか?
コメント
コメントを投稿