Python PR

【Python】データ型の種類と使い方を解説

記事内に商品プロモーションを含む場合があります

この記事では、Python のデータ型の種類や使い方について解説します。

Python には初めから多くのデータ型が用意されていて、どの型にも機能が豊富に実装されています。データは変数に代入して扱います。

変数について詳しく知りたい方は、下記の記事を参照してください。

変数とは?使い方と命名規則

それでは、Python のデータ型について見ていきましょう❗️

データ型とは?

データ型とは、その名前の通りデータの型です。プログラミングでは色々なデータを扱いますが、そのデータが持つ性質は「型」によって定められています。

例えば、整数は int という型で表され、文字列は str という型で表されます。

このように、データの種類によって型を分けることで、そのデータがどのような性質を持ち、どのように取り扱うべきかをそれぞれ定義することができます。

また、言語によってあらかじめ用意されている型を「組み込み型」と呼び、ユーザーが定義した型を「ユーザー定義型」と呼びます。

それでは、Python が用意している型を見ていきましょう!

データ型の種類

Python で主に使われるデータ型には、以下のようなものがあります。

タイプ 型名 代入方法
文字列 str s = 'Hello'
整数 int i = 1
浮動小数点数 float f = 2.71
真偽値 bool b = True
b = False
リスト list l = [1, 2, 3]
タプル tuple t = (1, 'a', 2)
辞書 dictionary d = {'one': 1, 'two': 2}
セット set s = {1, 2, 3}

試しにそれぞれのデータ型を生成して型を確認してみましょう❗️

型は type()関数 を使って確認できます

str型(文字列型)

str型 は、文字列を扱うための型です。

文字列型の変数を生成するには、シングルクォーテーション(') か ダブルクォーテーション(") で囲んだ文字列を代入します。str() を使っても生成することができます。

s = 'Hello'
print(type(s))

s = str('Hello')
print(type(s))

実行結果

<class 'str'>
<class 'str'>

以下のように、数値を文字列とすることもできます。

s = '1'
print(type(s))

実行結果

<class 'str'>

文字列の使い方【str型】

int型(整数型)

int型 は、整数を扱うための型です。

整数型の変数を生成するには、整数リテラルを代入するか int() を使います。

i = 1
print(type(i))

i = int(1)
print(type(i))

実行結果

<class 'int'>
<class 'int'>

float型(浮動小数点数型)

float型 は、浮動小数点数を扱うための型です。

浮動小数点数型も、直接代入するかfloat()を使います。

f = 0.5
print(type(f))

f = float(1)
print(type(f))

実行結果

<class 'float'>
<class 'float'>

bool型(真偽値)

真偽値とは「はい」「いいえ」のような二者択一を表すときに使用する値です。

  • 真(はい) = True
  • 偽(いいえ) = False

bool型 の変数を生成するには、TrueFalse を代入します。

b = True
print(type(b))

b = False
print(type(b))

実行結果

<class 'bool'>
<class 'bool'>

bool() を代入すると False となる。

b = bool()

print(b)

実行結果

False

bool型(真偽値)について解説します

list型(リスト)

リスト型の変数を生成するには、[] を使うか list() を使います。

l = []
print(l)
print(type(l))

l = list()
print(l)
print(type(l))

実行結果

[]
<class 'list'>
[]
<class 'list'>

[] の中に カンマ(,) を使って値を区切ることでリストを初期化できます。その際、型を気にすることなく混ぜこぜで要素を格納できます。

l = [1, 2, 3.14, 'Hello']
print(l)
print(type(l))

実行結果

[1, 2, 3.14, 'Hello']
<class 'list'>

list(リスト)の使い方

tuple型(タプル)

タプル型の変数を生成するには、()を使うかtuple()を使います。

t = ()
print(t)
print(type(t))

t = tuple()
print(t)
print(type(t))

実行結果

()
<class 'tuple'>
()
<class 'tuple'>

()の中にカンマ(,)を使って値を区切ることでタプルを初期化できます。リストと同様に型を気にすることなく要素を格納できます。

t = (1, 2, 3.14, 'Hello')
print(t)
print(type(t))

実行結果

(1, 2, 3.14, 'Hello')
<class 'tuple'>

tuple(タプル)の使い方

dict型(辞書)

辞書型の変数を生成するには、{}を使うかdict()を使います。

d = {}
print(d)
print(type(d))

d = dict()
print(d)
print(type(d))

実行結果

{}
<class 'dict'>
{}
<class 'dict'>

辞書型の要素は少し特殊でkeyvalueの2つの値を1つの要素として扱います。{}の中にkeyとvalueをコロン(:)で繋ぎ、カンマ(,)で区切って記述します。

d = {'one': 1, 'two': 2, 'f': 3.14}
print(d)
print(type(d))

実行結果

{'one': 1, 'two': 2, 'f': 3.14}
<class 'dict'>

辞書(マップ)の使い方【dict】

set型(セット)

セット型の変数を生成するには、{}を使うかset()を使います。しかし、中の要素を定義していない{}は、辞書型だと認識されてしまうので空のセットを生成するにはset()を使います。

s = set()
print(s)
print(type(s))

実行結果

set()
<class 'set'>

{}の中にカンマ(,)を使って値を区切ることでセットの要素を定義できます。

s = {1, 2, 3.14, 'Hello'}
print(s)
print(type(s))

実行結果

{1, 2, 3.14, 'Hello'}
<class 'set'>

set(セット)の使い方と集合演算を解説

データ型を分ける意味

そもそもなぜデータ型を分ける必要があるのでしょうか?

データ型を分けることで以下のようなメリットがあります。

性質を変更できる

データによって「なにがしたいか」が異なります。

例えば、数値型は演算に使うことが多いでしょう。なので、数値型同士で色々な演算ができるように定義されています。

このように、データ型を分けることによって「なにができるか、なにができないか」をそれぞれ変更することができます。

また、少し特殊な性質も定義されていたりします。

例えば、現実世界では文字列と整数でかけ算はできませんが、Pythonでは可能となっています。

s = 'Hello'

print(s * 3)

実行結果

HelloHelloHello

必要な処理(メソッド)を定義できる

データ型ごとに異なるメソッドを定義することができます。

メソッドとは、型に定義された関数のことを言いますが、とりあえずは型専用の処理だと覚えておけば問題ありません。

例えば文字列には、大文字にするメソッドや文字を置換するメソッドが定義されています。

s = 'Hello'

# 文字列を大文字にする
print(s.upper())

# 文字列の'l'を'a'に置換
print(s.replace('l', 'a'))

実行結果

HELLO
Heaao

これらのメソッドを整数で使うとエラーが発生します。

n = 1234

print(n.upper())

実行結果

AttributeError: 'int' object has no attribute 'upper'

int型には、upperなんてメソッドは無いよ」と怒られてしまいました。

型を判別できる

isinstance()関数を使うことで型を判別することができます。型を判別することで型によって処理を分岐させることができます。

val = 1

if isinstance(val, int):
    print('valはint型です')
elif isinstance(val, str):
    print('valはstr型です')
elif isinstance(val, list):
    print('valはlist型です')

実行結果

valはint型です

ユーザー定義型

どのように自分で型を定義できるのか簡単に見ていきます。

型を定義する

自ら型を定義するには、class(クラス) を使います。

以下のコードでは、Testという空のクラスを定義しています。

class Test:
    pass

型を使う

クラスを使うには、以下のようにインスタンス化します。

test = Test()

型を確認してみる

ユーザー定義型の型名を確認してみます。

print(type(test))

実行結果

<class '__main__.Test'>

簡潔に説明したので詳しく知りたい方は以下の記事を参照してください❗️

クラスの定義方法と使い方を解説

まとめ

この記事では、Pythonのデータ型について解説しました。

今回のおさらい
  • データ型とは? = 『データの型である』
  • 型の種類 = 『str、int、float、bool、list、tuple、dict、set、など』
  • 型の確認 = 『type(オブジェクト)』
  • 動的型付け = 『代入した値によって型が推測される』
  • 型の生成 = 『型名()でオブジェクトを生成できる(str()など)』
  • 型の判定 = 『isinstance(オブジェクト, 型)』

とても覚える内容が多くなってしまいましたが一度に覚える必要はありません。使いながら少しずつ覚えていきましょう!

それでは今回の内容はここまでです!ではまたどこかで〜( ・∀・)ノ