Pythonでプログラミングを学び始めたとき、かならず覚えなければならない概念のひとつが「データ型」というものです。
これは、簡単に言えばデータの種類のことで、Pythonで扱う全てのものにはデータ型があります。
この「データ型」の概念を知らずして、適切なプログラムを書くことは難しいので、ちゃんと覚えるようにしましょう。
とはいえ、すべて一度に覚えようとしても混乱するだけなので、この記事ではよく使う主要なデータ型のみご紹介することにします。
そして、今は無理に覚えようとせず「データ型」というものがあるということだけ、まずは頭の片隅に置いておいてください。
データ型を確かめる方法
各データ型の紹介をする前に、まずはデータ型の調べ方をご紹介しましょう。
データ型を調べるには、調べたいデータをtype()関数に入れるだけです。
たとえば、ここでは「myname」という変数のデータ型を調べています。
type()関数にmynameを入れると、<class ‘str’>と表示され、str型、すなわち文字列型であることがわかります。
myname = 'gengen'
type(myname)
<class 'str'>
Pythonで使う基本的なデータ型
数値型 (int型)
数値型は、その名の通り数値のデータです。
num = 10
type(num)
<class 'int'>
数値型のデータの特徴は、演算子を使って計算することができることです。
このように、数値型のデータ同士であれば計算をすることができます。
numA = 10
numB = 20
type(numA)
<class 'int'>
type(numB)
<class 'int'>
numA + numB
30
文字列型 (str型)
文字列型は、文字のデータ型です。
文字列型のデータを作るには「 ” (ダブルクォーテーション)」または「 ‘ (シングルクォーテーション)」で文字を囲みます。
myname = "ゲンゲン"
type(myname)
<class 'str'>
また、文字列型のデータ同士はくっつけることもできます。
myname = "ゲンゲン"
content = "プログラミング"
type(myname)
<class 'str'>
type(content)
<class 'str'>
myname + content
'ゲンゲンプログラミング'
浮動小数点型 (float型)
小数点を扱うデータは、浮動小数点型のデータになります。
num = 1.5
type(num)
<class 'float'>
浮動小数点型のデータも、数値型と同じように計算ができます。
numA = 1.5
numB = 2.5
type(numA)
<class 'float'>
type(numB)
<class 'float'>
numA + numB
4.0
また、浮動小数点型のデータは、数値型のデータとの計算もできます。
numA = 1.5
numC = 2
type(numA)
<class 'float'>
type(numC)
<class 'int'>
numA + numC
3.5
配列のデータ型
配列とは、内部に複数のデータを持つことができるデータ型のことです。
そして、配列の中のデータのことを「要素」といいます。
配列は、リスト型、タプル型、辞書型の3種類があり、用途とシーンによってそれぞれを使い分けます。
それでは、配列のデータ型について見ていくことにしましょう。
リスト型 (list型)
リスト型は、このような形になっているデータのことを指します。
この例にある「fruit」は、’apple’、’grape’、’lemon’という3つの要素を持つリスト型のデータです。
リスト型の基本文法はこのように、各要素を「,」で区切り、さらに[ ]で囲います。
fruit = ['apple', 'grape', 'lemon']
type(fruit)
<class 'list'>
リスト内部の各要素にアクセスするには、リスト名の後に[ ]で囲われた数字を入力します。
この数字はインデックス番号で、リスト内の最初の要素は0番目の要素になります。
fruit = ['apple', 'grape', 'lemon']
fruit[0]
'apple'
fruit[1]
'grape'
また、リストに新たな要素を追加するには .append() メソッドを使います。
fruit.append(‘melon’)を実行したあと、「’melon’」という要素が追加されていることがわかりますね。
fruit = ['apple', 'grape', 'lemon']
fruit
['apple', 'grape', 'lemon']
fruit.append('melon')
fruit
['apple', 'grape', 'lemon', 'melon']
タプル型 (tuple型)
タプル型は、()で囲われた形になっているデータ型です。
文法上のリスト型との違いは[ ]が( )になっているだけです。
fruit = ('apple', 'grape', 'lemon')
type(fruit)
<class 'tuple'>
タプル型もリスト型と同じように、インデックス番号を指定することで中の要素にアクセスすることができます。
fruit = ('apple', 'grape', 'lemon')
fruit[0]
'apple'
fruit[1]
'grape'
タプル型はリスト型とよく似ていますが、あとから内容を変えられないというのが大きな違いです。
なので、タプル型に対してappend()メソッドを使うと、このようなエラーが発生します。
fruit = ('apple', 'grape', 'lemon')
fruit.append('melon')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
辞書型 (dict型)
辞書型は、インデックス番号を好きな名前にできる配列データです。
書き方はこのような感じでキーと値を「:」で区切ってワンセットにして要素を作り、さらに要素を「,」で区切って、{ }で囲います。
fruit = {'apple': 5, 'grape': 10, 'lemon':7}
type(fruit)
<class 'dict'>
辞書型はインデックス番号が無く、自分で決めた「キー」を指定することで値にアクセスすることができます。
fruit = {'apple': 5, 'grape': 10, 'lemon':7}
fruit['apple']
5
fruit['grape']
10
辞書型の配列に要素を追加するには.update()メソッドを使います。
使い方はこんな感じで、追加したい辞書を.update()メソッドに渡す感じです。
fruit = {'apple': 5, 'grape': 10, 'lemon':7}
fruit.update({'melon': 20})
fruit
{'apple': 5, 'grape': 10, 'lemon': 7, 'melon': 20}
逆に、辞書から要素を取り除くには.pop()関数を使用します。
このとき.pop関数には取り除きたい要素の「キー」を渡すだけでOKです。
fruit = {'apple': 5, 'grape': 10, 'lemon':7}
fruit.pop('apple')
5
fruit
{'grape': 10, 'lemon': 7}
まとめ
いかがでしたでしょうか。
データ型についてさらっと解説いたしましたが、基本中の基本といえるデータ型だけでもこれだけあります。
なので一度に覚えようとせず、今は「データ型というものがあって、それはデータの種類のことなんだ」とだけ覚えておいてください。
そして、いずれどこかでエラーに引っかかったりしたときに、データ型のことを思い出してみてください。
例えば、タプルを変更しようとしていたり、数値型と文字列型を計算しようとしていたり・・・といった具合に、データ型に起因するエラーは数多く存在するからです。
それでは、次回は今回ご紹介した「リスト型」のデータを使って繰り返し処理の使い方を学んでいくことにしましょう。