Python は、初心者でも扱いやすく、様々な用途に使えるプログラミング言語として人気です。その人気の理由の一つに、動的型付け言語であることが挙げられます。
これは変数に型を明示的に宣言する必要がないため、柔軟なコーディングを可能にします。
一方で、時には型に使用している型がわからずエラーを出してしまうこともしばしばあります。。
そこで今回は、Python で使える基本的なデータ型とその使い方について解説していきます。
簡単にですが、サンプルコードも交えながら、それぞれの型の特性と具体的な用途を理解することで、より効率的かつ安全なコード記述を目指しましょう。
数値型は、数値を表すための型で、Python では主に以下の3つの数値型が使用されます。
整数型は、小数点を含まない整数を表す型です。
a = 10 # 整数 10 を変数 a に代入
b = -5 # 整数 -5 を変数 b に代入
c = a + b # a と b を加算し、結果を c に代入 (c は 5 になります)
d = int("15") # 文字列 "15" を整数に変換し、d に代入 (d は 15 になります)
浮動小数点型は、小数点を含む数を表す型です。
pi = 3.14 # 浮動小数点 3.14 を変数 pi に代入
radius = 5.0 # 浮動小数点 5.0 を変数 radius に代入
area = pi * radius * radius # 円の面積を計算し、area に代入 (area は 78.5 になります)
f = float("3.14") # 文字列 "3.14" を浮動小数点に変換し、f に代入 (f は 3.14 になります)
複素数型は、実部と虚部を持つ複素数を表す型です。
z = 2 + 3j # 複素数 2 + 3j を変数 z に代入
w = -1.5 - 2j # 複素数 -1.5 - 2j を変数 w に代入
result = z * w # z と w を掛け合わせ、結果を result に代入 (result は (-3.0 + 5.5j) になります)
c = complex(2, 3) # 実部 2、虚部 3 の複素数を c に代入 (c は 2 + 3j になります)
シーケンス型は、複数の要素を順番に格納できるデータ構造です。Python では、以下のシーケンス型が使用できます。
文字列型は、文字の並びを表す型です。
message = "Hello, world!"
name = "たろう"
greeting = "Hello, " + name + "!" # 文字列を連結し
for letter in message: # 各文字をループ処理
print(letter) # 各文字を出力
s = str(123) # 整数 123 を文字列に変換し、s に代入 (s は "123" になります)
リスト型は、複数の要素を順番に格納できる可変長のデータ構造です。要素は変更可能で、様々なデータ型を格納できます。
numbers = [1, 2, 3] # リストに整数値を格納
fruits = ["apple", "banana", "cherry"] # リストに文字列を格納
numbers.append(4) # リスト numbers に 4 を追加 (numbers は [1, 2, 3, 4] になります)
fruits[1] = "orange" # リスト fruits の2番目の要素を "orange" に変更 (fruits は ["apple", "orange", "cherry"] になります)
for number in numbers: # numbers の各要素をループ処理
print(number) # 各要素を出力
タプル型は、リストと似ていますが、一度定義した要素は変更できません。
coordinates = (10, 20) # 座標を表すタプル
fruit_basket = ("apple", "banana", "cherry") # タプルに文字列を格納
print(coordinates[0]) # タプルの最初の要素を出力 (10 が出力されます)
範囲型は、整数のシーケンスを生成する型です。ループ処理で指定した範囲の整数を処理する際に便利です。
for i in range(5): # 0 から 4 までの整数をループ処理
print(i) # 0, 1, 2, 3, 4 が出力されます
for j in range(1, 10): # 1 から 9 までの整数をループ処理
print(j) # 1, 2, 3, 4, 5, 6, 7, 8, 9 が出力されます
Python では、数値型やシーケンス型以外にも、様々なデータ型が使用されています。
ブール型は、真偽値 (True または False) を表す型です。条件分岐やループ処理の条件として使用されます。
is_true = True # ブール値 True を変数 is_true に代入
is_false = False # ブール値 False を変数 is_false に代入
if is_true: # is_true が True の場合
print("True です") # "True です" を出力
集合型は、同じ要素を持たない、順序付けされていない要素の集まりです。集合演算 (和、差、積、排他的論理和) を行うことができます。
set1 = {1, 2, 3} # 集合に整数値を格納
set2 = {2, 3, 4} # 集合に整数値を格納
union = set1 | set2 # set1 と set2 の和集合 (union は {1, 2, 3, 4} になります)
intersection = set1 & set2 # set1 と set2 の積集合 (intersection は {2, 3} になります)
辞書型は、キーと値のペアを格納するデータ構造です。キーを使って値にアクセスできます。
person = {"name": "Alice", "age": 30} # 辞書にキーと値のペアを格納
print(person["name"]) # キー "name" に対応する値を出力 ("Alice" が出力されます)
person["age"] = 31 # キー "age" の値を 31 に変更 (person は {"name": "Alice", "age": 31} になります)
None 型は、値が何もないことを表す特別な型です。変数を初期化したり、関数が値を返さない場合に使用します。
value = None # 変数 value を None に初期化
print(value) # None を出力
Python では、int(), float(), str(), bool() などの関数を使って、異なる型同士の変換を行うことができます。
a = "123" # 文字列 "123" を変数 a に代入
b = int(a) # 文字列 "123" を整数に変換し、b に代入 (b は 123 になります)
c = 1.23 # 浮動小数点 1.23 を変数 c に代入
d = int(c) # 浮動小数点 1.23 を整数に変換し、d に代入 (d は 1 になります。小数点以下は切り捨てられます)
type() 関数を使うと、変数の型を確認することができます。
※これが意外と使える重要な関数です。
Python3ではこれがないと以上となったときにデバッグが難しいです。
a = 10
print(type(a)) # <class 'int'> が出力される
Python で使える様々なデータ型について解説しました。それぞれの型の特徴と用途を理解することで、より効率的かつ安全なコード記述が可能になります。
今回の記事が、Python のデータ型について理解を深める一助となれば幸いです。
Python初心者向けの内容も知りたい型はこちら
Python初心者向け 構文の使い方等をC言語との比較で知りたい方はこちら
Pythonの演算子や演算子の優先度について知りたい方はこちら
最後に、Pythonの基礎を学びたい方は以下がおすすめです。私も持っていてたまに眺めて勉強していますものですのでぜひ購入して学習してみてください。