データ型とは?種類・特徴・型変換をPythonで解説!

data1 プログラミング学習
アフィリエイト広告を利用しています

こんにちは!kumoriのお部屋へようこそ。

プログラミングを学んでいると、「データ型」という言葉を耳にすることがあるかもしれません。

データ型は、プログラムの中で扱う「値の種類」を決める重要な概念です。

今回は、データ型の基本や種類を初心者向けに分かりやすく解説します!

それではいきましょう!

     

データ型とは、値の種類を分類するもの

プログラムでは、さまざまな種類のデータを扱います。

例えば、次のようなデータを考えてみましょう。

  • 「年齢」 → 25(数値)
  • 「名前」 → “太郎”(文字列)
  • 「会員登録済みか?」 → True(真偽値)

人間なら、これらが何を意味するかすぐに分かりますが、
コンピューターはデータの種類を明確にしないと正しく処理できません

そこで、プログラミング言語では、データの種類を区別するために『データ型』を使います。

 

データ型が重要な理由

プログラミングにおいて「データ型」は単なる分類ではなく、正しく効率よくプログラムを動かすための重要な仕組みです。

ここでは、「データ型がある理由」を2つの観点から解説していきます。

1. メモリの使い方を最適化する

コンピュータはデータをメモリ(RAM)に保存して処理します。しかし、データには大小があり、
適切なサイズを確保しなければメモリを無駄に消費してしまいます。

データ型によるメモリの違い(例:Pythonの場合)

データ型値の例メモリ使用量(目安)
整数(int)1028バイト
小数(float)3.1424バイト
文字列(str)“Hello”54バイト
真偽値(bool)True28バイト

「10という数字」を整数(int)として保存するのと、小数(float)として保存するのでは、使うメモリ量が変わることがわかります。

もしデータ型がなかったら、すべてのデータを同じサイズで扱う必要があり、無駄にメモリを消費するか、逆に必要なサイズを確保できずにエラーが発生してしまいます。

 

2. データの整合性を守る

プログラムでは、データの種類によって処理の仕方が異なります。もしデータ型がなければ、数値と文字列の区別がつかず、意図しない計算ミスが発生することがあります。

Python では、「10 + “5”」のような計算をしようとすると、“5” は数値ではなく文字列(str)として扱われるため、エラーになります。

num1 = 10  # 数値型(int)
num2 = “5”  # 文字列型(str)

result = num1 + num2

print(result)

実行すると、↓のように「文字列と数値は計算できません」というエラーが発生します。

TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’

データ型があることで、プログラムは「このデータは数値として扱うべきか、それとも文字列か」を明確に区別できるようになり、意図しない計算ミスやエラーを防ぐことができます。

数値と文字列は、型変換(キャスト)すれば、足し算を行うことも可能です。
型変換の詳細については、後のデータ型の変換(型変換 / キャスト)で解説します

 

代表的なデータ型とその特徴(Python)

Python では、変数を宣言するときに データ型を明示する必要はありません

変数に代入された値をもとに自動的で決定します。

type()
関数を使うことで、変数のデータ型を確認できます。

x = 10 # Pythonでは型を明示しない

print(type(x))

実行結果

<class ‘int’>

このように、Python では 動的型付け(型の自動判別)が行われます。しかし、データ型の違いによって計算や処理の結果が変わるため、データ型の基本を理解することが重要です。

 

Python の主なデータ型一覧

データ型説明
整数 (int)小数を含まない数値10, -5, 100
小数 (float)小数点を含む数値3.14, -0.5, 10.0
文字列 (str)文字を表すデータ"Hello", 'Python'
真偽値 (bool)True または FalseTrue, False
リスト (list)複数の値を順番に格納[1, 2, 3]
タプル (tuple)変更不可のリスト(1, 2, 3)
辞書 (dict)キーと値のペアでデータを管理{"name": "Alice", "age": 25}
セット (set)重複を許さない集合{1, 2, 3}
None (NoneType)値が存在しないことを示すNone

 

各データ型の説明と実行例

1. 整数型(int)

整数を表すデータ型。小数点を含まない数値を扱います。

x = 10

print(x)

print(type(x))

実行結果

10
<class ‘int’>

 

2. 小数型(float)

小数点を含む数値を扱います。

y = 3.14

print(y)

print(type(y))

実行結果

3.14
<class ‘float’>

 

3. 文字列型(str)

文字や単語、文章を扱うデータ型。ダブルクオート” ”またはシングルクオート’ ‘で囲みます。

text = “Hello, Python”

print(text)

print(type(text))

実行結果

Hello, Python
<class ‘str’>

 

4. 真偽値型(bool)

True(真)または False(偽)の値を持つ型。条件分岐に使用されます。

is_active = True

print(is_active)

print(type(is_active))

実行結果

True
<class ‘bool’>

 

5. リスト型(list)

複数のデータを順番に格納できるデータ型。[]で囲んで定義します。

numbers = [1, 2, 3, 4, 5]

print(numbers)

print(type(numbers))

実行結果

[1, 2, 3, 4, 5]
<class ‘list’>

 

6. タプル型(tuple)

リストと似ていますが、変更ができないデータ型。()で囲んで定義します。

coordinates = (10, 20)

print(coordinates)

print(type(coordinates))

実行結果

(10, 20)
<class ‘tuple’>

 

7. 辞書型(dict)

キーと値のペアでデータを管理するデータ型。{}で囲んで定義します。

person = {“name”: “Alice”, “age”: 25}

print(person)

print(type(person))

実行結果

{‘name’: ‘Alice’, ‘age’: 25}
<class ‘dict’>

 

8. セット型(set)

重複を許さない集合を扱うデータ型。{}で囲んで定義します。

unique_numbers = {1, 2, 3, 3, 2}

print(unique_numbers)

print(type(unique_numbers))

実行結果

{1, 2, 3}
<class ‘set’>

 

9. None(NoneType)

何も値がないことを示すデータ型。

value = None

print(value)

print(type(value))

実行結果

None
<class ‘NoneType’>

 

データ型の変換(型変換 / キャスト)

プログラムでは、異なるデータ型を扱うことがあります。例えば、数値と文字列を一緒に使おうとするとエラーになるため、データ型の変換(キャスト) が必要になります。

Python では、次の関数を使ってデータ型を変換できます。

関数変換内容
int(x)文字列や小数を整数に変換int("10") → 10
float(x)文字列や整数を小数に変換float("3.14") → 3.14
str(x)数値を文字列に変換str(100) → "100"

これらを実際に使ってみましょう。

 

1. 数値を文字列に変換 str()

数値を文字列に変換すると、文字列として扱えるようになります。

age = 25

message = “私は ” + str(age) + ” 歳です。”

print(message)

実行結果

私は 25 歳です。

「age」を「+」で連結するとエラーになりますが、「str(age)」にすることで解決できます。

 

2. 文字列を整数に変換 int()

プログラムでは、「”100″」のように数字が文字列として保存されている ことがあります。数値として計算しようとすると正しく動作しないため、intを使って整数に変換する必要があります。

num1 = “100”
num2 = “50”

# そのままでは文字列の結合になる
print(“文字列としての結合:”, num1 + num2)

# 数値に変換すると正しく計算できる
print(“整数としての計算:”, int(num1) + int(num2))

実行結果

文字列としての結合: 10050
整数としての計算: 150

 

3. 文字列を小数に変換 float()

小数を含む文字列(”3.14″など)を計算に使う場合、float()を使って変換します。
int()を使うと小数点以下が切り捨てられるため、小数のまま計算する場合はfloat()を使います。

num1 = “100.5”
num2 = “50.25”

# 文字列のままでは計算できない
# print(num1 + num2) →”100.5″ + “50.25” → “100.550.25”(文字列の結合)

# 小数として計算
print(“小数としての計算:”, float(num1) + float(num2))

実行結果

小数としての計算: 150.75


型変換を適切に行うことで、プログラムを安全かつ正確に動作させることができます。

 

         

データ型の実践例

ここまでで、Python の基本的なデータ型と型変換について学びました。

最後に、学んだ内容を実践例でおさらいしていきましょう。

整数、小数、文字列のデータ型を作成し、それぞれの型を確認します。
また、異なるデータ型を組み合わせた場合にどのように変化するのかを確認します。

#それぞれのデータ型の変数を作成
num1 = 10     # 整数(int)
num2 = 3.14    # 小数(float)
text = “Python”  # 文字列(str)

#各データの型を表示
print(type(num1))  # int
print(type(num2))  # float
print(type(text))   # str

#数値同士の計算(int + float)
result = num1 + num2
print(result)
print(type(result)) # float に変化

#数値と文字列の結合(型エラーを防ぐための変換)
message = text + ” ” + str(num1)
print(message)
print(type(message)) # str

実行結果

<class ‘int’>
<class ‘float’>
<class ‘str’>

13.14
<class ‘float’>

Python 10
<class ‘str’>

解説

1. それぞれのデータ型を確認

print(type(num1))  # int
print(type(num2))  # float
print(type(text))   # str

  • num1は整数(int)、num2 は小数(float)、text は文字列(str)
  • type()を使うと、それぞれの変数のデータ型を確認できる

2. 数値の計算(int + float)

result = num1 + num2
print(result)
print(type(result)) # float に変化

  • Pythonでは、整数(int)と小数(float)を足すと、データ型は「floatになる

3. 数値と文字列の結合(型エラーを防ぐ)

message = text + ” ” + str(num1)
print(message)
print(type(message)) # str

  • text + num1 のように、文字列 (str) と整数 (int) をそのまま足すとエラーになる
  • str(num1) で整数を文字列に変換することで、エラーを防ぎつつ結合できる

 

次に学ぶべき記事を紹介

データを計算する方法を学ぶために、次は、「演算子」を学びましょう!

最後に

ここまでブログを読んでいただき、ありがとうございました。

データ型を理解することで、エラーを防ぎ、値の扱い方がわかるようになります。

実際に手を動かして学んでいきましょう。