Python

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

この記事では、Pythonのデータ型の種類や使い方について解説します。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'>
【Python】文字列の使い方【str型】この記事では、Pythonの文字列の使い方について解説します。Pythonには、文字列を扱うための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'>

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'>
【Python】リストの使い方【list】この記事では、Pythonのリスト(list)の使い方を解説します。リストは、要素の追加・変更・削除が行え、汎用性が高いシーケンスの1つ...

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'>
【Python】タプルの使い方【tuple】この記事では、Pythonのtuple(タプル)の使い方を解説します。タプルは、異なったデータ型の集まりを格納できるシーケンスです。しか...

dict型(辞書)

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

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

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

実行結果

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

辞書型の要素は少し特殊で、「key」と「value」の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'>
【Python】辞書の使い方【dict】この記事では、Pythonの辞書の使い方を解説します。辞書はマップとも呼ばれ、keyとvalueの2つの値を用いて扱われます。では、辞書...

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'>
【Python】セットの使い方【set(集合)】この記事では、Pythonの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】型を定義する方法【class(クラス)の使い方】この記事では、Pythonのclass(クラス)を定義する方法を解説します。 クラスとは、つまりは「型」のことです。クラスを定義す...

まとめ

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

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

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

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

最短3か月でエンジニア転職『DMM WEBCAMP COMMIT』