Pythonの基本構文である「データ型 」に関して、現役エンジニアである筆者が解説いたします。分かりやすく説明できるように心がけ、理解を助ける図解を用いて説明しました。
この記事を読めば、Pythonのデータ型の種類からデータの確認、データの変換まで、学べる内容となっております。下記目次から該当の項目に飛べます!
データ型の種類と関数type()でデータ型の確認方法
Pythonは変数を宣言し代入を行うと、代入した値によって、データ型が確定します。データ型は様々な種類がありますが、どんなデータ型があるかを説明します。あわせて、データ型の確認も行っていきます。
関数type()によるデータ型の確認方法
データ型の確認を行う上で、組み込み関数である「 type() 」を用いて確認します。まずはこちらの関数の使用方法から説明していきます。
文字列型(string type)
文字を表す型「 str 」
※厳密に言うと「 シーケンス型 (Sequence Types) 」と共通する部分もあるため、この分類にも入る
"文字"
name_s = "文字列です"
print(type("文字"))
print(type(name_s))
# 実行結果
<class 'str'>
<class 'str'>
数値型 (Numeric Types)
整数を表す型「 int 」
num = 10
print(type(10))
print(type(num))
# 実行結果
<class 'int'>
<class 'int'>
浮動小数点を表す型「 float 」
f_num = 31.98
print(type(31.98))
print(type(f_num ))
# 実行結果
<class 'float'>
<class 'float'>
真偽型 (Boolean Type)
真偽値を表す「 bool型 」
真 →「 True 」意味としては「 一致 」という認識になります。逆に 偽 →「 False 」意味としては「 不一致 」という認識になります。つまり正しいのか間違っているのかを判定するための型です。
下記コードは引数の「 左辺 」と「 右辺 」を比較した結果を出力しています。
print(15 == 15) #True
print(15 == 10) #False
bool_t = 15 == 15
bool_f = 15 == 10
print(type(bool_t))
print(type(bool_f))
# 実行結果
True
False
<class 'bool'>
<class 'bool'>
シーケンス型 (Sequence Types)
リスト型(list)
リスト型とは複数の要素を順序付けて保存できる型です。要素は変更可能です。他のプログラミング言語だと「 配列 」と呼ばれる型に近いと思います。
※リストの扱い方に関しては別記事で執筆予定です。
pet_names = ["ポチ", "クロ", "マル"]
numbers = [1, 2, 3]
print(type(pet_names))
print(type(numbers))
# 実行結果
<class 'list'>
<class 'list'>
タプル型(tuple)
タプル型とは複数の要素を順序付けて保存できる型です。ここまではリスト型同様ですが、違う点は、一度作成すると変更できない所が違う点です。
タプルの扱い方に関しては別記事で執筆予定です。
pet_t_names = ("ポチ", "クロ", "マル")
numners_t = (1, 2, 3)
print(type(pet_t_names))
print(type(numners_t))
# 実行結果
<class 'tuple'>
<class 'tuple'>
集合型 (Set Types)
集合(set)
集合型とは重複する要素を持たず、順序がない型です。
集合の扱い方に関しては別記事で執筆予定です。
my_set = {1, 2, 3}
print(type(my_set))
# 実行結果
<class 'set'>
マッピング型 (Mapping Type)
辞書(dict)
辞書型とは、キーと値のペアの集まりであり、キーは一意で変更が出来ない制約のある型です。ちなみに値は変更できます。
辞書の扱い方に関しては別記事で執筆予定です。
my_dict = {"いちご" : 120, "すいか" : 200, "マンゴー" : 500}
print(type(my_dict))
# 実行結果
<class 'dict'>
複素数型(complex type)
複素数型とは、実数部と虚数部から構成される数値型です。
com = 1 + 3j
# 又は
com_2 = 1 + 7J
上記を例で見ると、「 1 」が実数部、「 3j 」が虚数部となります。虚数部は「 j 」又は「 J 」で記述します。
Python の複素数型は数学的な計算や科学技術計算において非常に便利であり、NumPy などのライブラリでも広く使用されています。
他:(NoneType)
None
「 None 」のみを持つ型で、何も持たないデータ型です。
no = None
print(type(no))
# 実行結果
<class 'NoneType'>
isinstance()関数を使用してデータ型を確認する方法
「 isinstance()関数 」を使用すると、値や変数が特定のクラスのインスタンスかどうかを確認する事が出来ます。以下を簡単に説明すると、変数「 num 」の値は「 77 」なので、「 isinstance() 」で確認すると「 True 」となり正しい事が分かりました。
num = 77
num_f = 1.21
st = "mozi"
li = [1, 5, 4]
# 一致の場合
print(isinstance(num, int))
print(isinstance(num_f, float))
print(isinstance(st, str))
print(isinstance(li, list))
# 不一致の場合
print(isinstance(num, str))
print(isinstance(num_f, str))
print(isinstance(st, int))
print(isinstance(li, str))
# 実行結果
True
True
True
True
False
False
False
False
型を比較する事で直接、データ型を確認する方法
「 type()関数 」を使用して、データ型と比較をする事で、確認をする事も出来ます。
num = 77
num_f = 1.21
st = "mozi"
li = [1, 5, 4]
# 全てTrue
print(type(num) == int)
print(type(num_f) == float)
print(type(st) == str)
print(type(li) == list)
# 実行結果
True
True
True
True
各種、データ型の変換をする方法
まずは、データ型の変換方法を説明する前に、なぜデータ型を変換する必要があるのかを説明します。
変数に値を代入し、出力する際に、複数の変数を連結させて出力する事もあると思います。主に文字列の連結で頻度が高いと思いますが、簡単な説明だけで詳細は割愛します。
※文字列の連結に関しては別記事で執筆予定です。
整数int型から文字列str型への変換する方法
「 str() 」メソッドを使用します、データ型を変換したい変数を引数にとれば、データ型が変換されます。下記の場合は「 int 」から「 str 」へ変換されています。
age = 20
print("私は" + str(age) + "歳です。")
# 実行結果
私は20歳です。
浮動小数点float型から文字列str型への変換する方法
「 str() 」メソッドを使用します、データ型を変換したい変数を引数にとれば、データ型が変換されます。下記の場合は「 float 」から「 str 」へ変換されています。
num_f = 1.5
print("私の予測では売り上げは前年の" + str(num_f) + "倍と見ています。")
# 実行結果
私の予測では売り上げは前年の1.5倍と見ています。
文字列str型から整数int型への変換する方法
「 int() 」メソッドを使用します、データ型を変換したい変数を引数にとれば、データ型が変換されます。下記の場合は「 str 」から「 int 」へ変換されています。
str_num = "5"
print(int(str_num) + 5)
# 実行結果
10
文字列str型から浮動小数点float型への変換する方法
str_num_f = "5.5"
print(float(str_num_f) + 5)
# 実行結果
10.5
以上となります。お読みいただきありがとうございました。
コメント