3. Pythonのデータ型(基本編)¶
節サブタイトル
基本になるデータ型の紹介
代表的なPythonのデータ型と、便利な使い方を紹介します。
それぞれのデータ型の紹介で、「これだけは知っておくとよいよ」という機能を挙げます。
3.1. はじめに¶
本節では整数型(int
)、浮動小数点型(float
)、文字列型(str
)を扱います。
データ型については、Pythonの公式ドキュメントも参考にしてください。
3.2. 整数型(int)¶
整数を扱うには、整数型(int
)を使います。
主な演算子には、前節で説明した四則演算(+
、-
、*
、/
)と剰余(%
)の他に、累乗(**
)があります(リスト 3.1)。
>>> 2 + 2
4
>>> 3 - 8
-5
>>> 6 * 9
54
>>> 8 / 2
4.0
>>> 5 % 2
1
>>> 5 ** 2
25
割り算の結果は小数点以下も出力されます(リスト 3.2)。
>>> 10 / 3
3.3333333333333335
>>> 10 / 4
2.5
>>> -10 / 4
-2.5
割り算の結果を整数で取得したい場合は //
演算子を使用します(リスト 3.3)。
その場合は、小数点以下は切り捨てられます。
>>> 10 // 3
3
>>> 10 // 4
2
>>> -10 // 4
-3
3.3. 浮動小数点型(float)¶
小数を扱うには浮動小数点型(float
)を使います。
整数型と同様の演算子が使えます(リスト 3.4)。
>>> 5.0
5.0
>>> 5.0 + 5.2
10.2
>>> 10.2 + 8
18.2
浮動小数点型と整数型との計算は浮動小数点型を返します。
3.4. 文字列型(str)¶
文字列を使うには文字列型(str
)を使います。
リスト 3.5 のように、シングルクォート('
)かダブルクォート("
)の間に文字を入力します。
シングルクォート、ダブルクォートのどちらで書いても機能的な違いはありません。
>>> 'Hello,world'
'Hello,world'
>>> "Hello,world"
'Hello,world'
3.4.1. 文字のエスケープ¶
文字列中にクォート文字やその他の特殊な文字を含めたい場合は、バックスラッシュ(\
)でエスケープします。
たとえば、シングルクォートで囲まれた文字列中では、シングルクォートを \'
と書き、改行文字を \n
と書きます(リスト 3.6)。
>>> print('I\'m Hiroki')
I'm Hiroki
>>> print('Hello\nworld')
Hello
world
文字列がシングルクォートを含み、ダブルクォートを含まない場合は、ダブルクォートで囲むと見やすいです(リスト 3.7)。
>>> print("I'm Hiroki")
I'm Hiroki
3.4.2. 三重クォート¶
改行を含む文字列を一度に定義するには、三重クォート(クォート文字3つ)で文字列を囲みます。
シングルクォートの場合は '''
、ダブルクォートの場合は """
です(リスト 3.8)。
>>> """ foo
... bar
... baz
... """
' foo\nbar\nbaz\n'
3.4.3. 文字列の結合と繰り返し¶
文字列型同士を結合するには、プラス記号(+
)を使います(リスト 3.9)。
アスタリスク(*
)を使って繰り返した文字列を取得できます。
アスタリスクの左に繰り返したい文字列を、右に繰り返し回数を整数型で指定します(リスト 3.10)。
>>> 'Mt.' + 'Fuji'
'Mt.Fuji'
>>> 'spam' * 5
'spamspamspamspamspam'
3.4.4. インデックス表記¶
文字列のある位置を指定して1文字を取り出す機能です。
>>> 'python'[1]
'y'
文字列から1文字を取り出すには、 リスト 3.11 のように書きます。
リスト 3.11 では、文字列の先頭文字を0として数えた1の位置にある文字、 'y'
が返されています。
この位置をインデックスと呼びます。インデックスには負数も使えます。 図 3.7 のようになります。
3.4.5. スライス¶
Pythonのスライスを使えば、 リスト 3.12 のように、2、3、4番目の文字 'tho'
という文字列を取り出せます。
>>> 'python'[2:5]
'tho'
取り出す文字列の位置は、整数型を2つ、コロン(:
)で挟んで指定します。
指定する位置は、「(取り出す文字列に)含める文字の開始位置のインデックス」から「含めずに切り捨てる文字の開始位置のインデックス」と考えられます。
リスト 3.12 の場合、「インデックスが2の位置の 't'
から始まり、インデックスが5の位置の 'n'
以降を切り捨てた」文字列、 'tho'
が返されます。
また先頭や末尾を含む文字列のスライスは、 リスト 3.13 のように切り出し、切り捨て位置を省略して指定します。
>>> 'python'[:3]
'pyt'
>>> 'python'[4:]
'on'
3.4.6. 文字列の長さ(len()関数)¶
文字列の長さを調べるには、 len()
関数を使います。
戻り値は整数型です(リスト 3.14)。
>>> len('python')
6
3.4.7. 文字列の有無(in演算子)¶
文字列中にある文字列が存在するかどうかを調べるには、 in
演算子を使います(リスト 3.15)。
>>> 't' in 'python'
True
>>> 'k' in 'python'
False
>>> 'th' in 'python'
True
3.4.8. 文字列の分割(.split()メソッド)¶
文字列を分割するには、 .split()
メソッドを使います。
分割したい文字列に対してメソッドを呼び出し、引数に区切り文字(デリミタ)を指定します。
ハイフンで文字列を区切るには、 リスト 3.16 のようにします。
>>> 'pain-au-chocolat'.split('-')
['pain', 'au', 'chocolat']
3.4.9. 区切り文字による文字列の結合(.join()メソッド)¶
文字列を区切り文字で結合するには、 .join()
メソッドを使います。
区切り文字に対してメソッドを呼び出し、引数に結合したい文字列のリストを指定します(リスト 3.17)。
>>> '-'.join(['pain', 'de', 'campagne'])
'pain-de-campagne'
3.5. まとめ¶
代表的なPythonのデータ型と、便利な使い方を紹介しました。 型の特徴と機能を最大限に活用して開発を進めましょう。