プログラミングをする上でデータ型の話を避けて通ることはできません。
データ型を理解していないとエラーが大量発生してしまうかも。
今回はそんな超重要なデータ型を初心者向けにやさしく解説していきます。
- データ型って何?
- データ型の種類は?
- データ型を間違えるとどうなるの?
などについて解説しています。これらを理解してエラーの回数を減らしていきましょう。
また、この記事ではPythonを例に解説していますが、データ型の話はほかのプログラミング言語にもあてはまりますので参考にしてみてください。
データ型とは?
データ型とはデータの種類や性質のとこです。大雑把ですが最初はこの認識で大丈夫です。
ここでいうデータとは数値や文字列などのことです。
人間であれば「2」は数値で「Hello World」は文字列とすぐにわかります。むしろ意識せずに文章を読んでいることが多いですね。
しかし、コンピューターは違います。
数値や文字列などの違いを伝えてあげないと混乱してエラーになります。
数値であれば足し算や引き算などの四則計算ができますが、文字列に対して四則計算はできないというように、データ型によってできること、とできないことがあるので明確に区別する必要があります。
以下に代表的なデータ型をまとめています。もしこれらのデータ型を無視するとエラーが発生しますから、明確に区別できるようにしましょう。
データ型の確認方法
Pythonではtype関数を使うとデータ型の確認ができます。以下の「int」や「str」がデータ型を表しています。
1 2 3 4 5 6 7 8 9 10 11 |
#2のデータ型を取得 print(type(2)) #出力結果 <class 'int'> #'Hello World'のデータ型を取得 print(type('Hello World')) #出力結果 <class 'str'> |
データ型の種類
- int型:整数
- float型:浮動小数点
- str型:文字列
- bool型:真偽値
- list型:リスト・配列
- tuple型:タプル
- dict型:辞書
- set型:集合
int型:整数
int型とは整数を扱うときのデータ型です。整数を入力すると自動的にint型に分類してくれます。もちろん、正の数と負の数の両方を扱うことができます。
1 2 3 4 5 |
#int型の例 print(type(5)) #出力結果 <class 'int'> |
float型:浮動小数点
float型とは小数を扱うときのデータ型です。これも正の数と負の数の両方を扱うことができます。
また、5/4のように分数を入力しても自動的に小数に変換されるのでfloat型になります。
1 2 3 4 5 6 7 8 9 10 11 |
#float型の例 print(type(2.8)) #出力結果 <class 'float'> #分数の場合もfloat型になる print(type(5/4)) #出力結果 <class 'float'> |
str型:文字列
str型とは文字列を扱うときのデータ型です。文字列は通常ダブルクォート(”)またはシングルクォート(’)で囲みます。
「2」と入力するとint型ですが、「'2'
」と入力するとシングルクォートがついているのでstr型として認識されます。
1 2 3 4 5 6 7 8 9 10 11 |
#str型の例 print(type('Hello World')) #出力結果 <class 'str'> #クォートをつけるとstr型になる print(type('2')) #出力結果 <class 'str'> |
bool型:真偽値
bool型とは真(True)と偽(Fales)の二つの値を持つデータ型です。比較の結果などに使われます。
1 2 3 4 5 6 7 8 9 |
#bool型はTrueかFalseのどちらか print(5>7) print(2<9) print(type(5>7)) #出力結果 False True <class 'bool'> |
コンテナのデータ型
コンテナとは複数のデータを格納する箱です。リスト、タプル、辞書の3つがあります。これらはデータの格納方法が異なります。
list型:リスト
リストとは格納されているデータの変更などが可能(ミュータブル)なコンテナのことを言います。リストは角カッコ[]
で表します。
以下の例のようにリストの中にどんなデータが格納されていても、角カッコで囲まれていればlist型になります。
1 2 3 4 5 6 |
#list型の例 x = ['Hello', 'World', 9] print(type(x)) #出力結果 <class 'list'> |
tuple型:タプル
タプルとは格納されているデータの変更ができない(イミュータブル)なコンテナのことを言います。タプルは丸カッコ()
で表します。
これもリスト同様、タプルに格納されているデータ型によらず丸カッコで囲まれていればtuple型になります。
1 2 3 4 5 6 |
#tuple型の例 x = ('Hello', 'World', 9) print(type(x)) #出力結果 <class 'tuple'> |
dict型:辞書
辞書とは2つのデータを関連付けて(キーとバリューとして)保存できるコンテナのことを言います。辞書は波カッコ{}
で表します。
辞書の場合も格納されているデータによらず波カッコで書かれているならdict型になります。
1 2 3 4 5 6 |
#dict型の例 x = {'cat':'tama', 'dog':'pochi', 'year':1776} print(type(x)) #出力結果 <class 'dict'> |
set型:集合
集合(セット)とは順番に関係なくデータを格納するコンテナです。辞書と同じく波カッコ{}
で表しますが書き方が異なります。
1 2 3 4 5 6 |
#set型の例 x = {'cat', 'dog', 'bird'} print(type(x)) #出力結果 <class 'set'> |
データ型を無視したときに出るエラー
int型とstr型の足し算などのデータ型を無視したプログラムを実行した場合はTypeErrorが出ます。
1 2 3 4 5 6 7 |
#TypeErrorを出してみる print('2' + 2) #出力結果 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: Can't convert 'int' object to str implicitly |
一番下の行に書かれている文の意味は「int型とstr型の足し算はできません」という意味です。言い換えると「数字と文字の足し算はできない」という意味です。
もし、TypeErrorが出てきた場合は、プログラム中のデータ型を見直してみましょう。
まとめ
今回はデータ型を見ていきました。人間にとっては数字や文字の区別は当たり前のようにしていますが、パソコンは違います。
「これが数字でこちが文字ですよ」と教えてあげないとわからないわけですね。そのためにクォートや括弧で区別したりします。
パソコンの気持ちになって考えてあげましょう(笑)
データ型はオブジェクトの話にも通じるところですから、それぞれのデータ型を区別できるようにしておきましょう。
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]