【Python初学者】データ型とは?種類と特徴をわかりやすく解説!

この記事は、プログラミング初学者が学びのアウトプットを兼ねてまとめた内容です。
どうも、わだですこの記事では、「Pythonの基本的なデータ型とそれぞれの特徴」
について、初学者目線で解説します。
データ型とは?
変数や値がどんな種類のデータを持っているのかを表すものです。
基本的なデータ型には次ようなものがあります。
| 分類 | データ型 | 特徴 | 例 |
|---|---|---|---|
| 数値型 | int, float, comprex | 整数, 浮動小数点数, 複素数 | x = 5 y = 4 + 3i |
| 文字列型 | str | 文字列 | “はじめまして” ‘wada’ |
| ブール型 | bool | 真偽値 | True/ False |
| シーケンス型 | list, tuple | 順序をもつ要素の集まり 重複OK | [“apple”, “banana”, “cherry”, “banana”] (1, 2, 3) |
| 集合型 | set | 重複を持たない要素の集まり | {“apple”, “banana”, “cherry”} |
| 辞書型 | dict | キーと値のペア | {“name”: “wada”, “age”: 27} |
数値型(int, float, complex)
◼︎int: 整数
x = 10
y = -5
◼︎float: 浮動小数点
a = 3.14
b = -0.5
◼︎complex: 複素数
「a + bj」の形で表します。aを実部、bを虚部といいます。
実部と虚部をそれぞれ出力するには、以下のように書きます。
z = 5 + 6j
print(z.real) #出力: 5.0
print(z.imag) #出力: 6.0
文字列型(str)
文字の連なったものを文字列と呼びます。
文字列はダブルクォーテーション(”)やシングルクォーテーション(’)で囲います。
◼︎文字列の例
greeting = “Hello!”
name = “wada”
◼︎文字列の連結
message = greeting + name print(message) #出力: Hello!wada
☝️数字を文字列として書くこともできます。
print("10") #出力: 10
初学者わだの疑問〜師匠に聞いてみた〜



数値型で書いても、文字列型で書いても、結局出力結果は同じ10。
何か違うの?
確かに一見すると同じように見えるけれど、数値と文字列は異なる型として認識されるよ。例を見ながら学んでいこう!
#数値型
print(10 + 10) #出力: 20
#文字列型
print(”10” + “10”) #出力: 1010
数値型は数値だから計算される。文字列型は文字として認識されるから、入力した文字がそのまま出力されるんだよ。
違いがわかったかな?



なるほど!でも、数値型とか文字列型とか、どうやって使い分けるの?
いいところに気づいたね!例えばこの先学ぶinput()関数というものがあって、ユーザーが入力した値を受け取るものなんだけど、返ってくる値は文字列型なんだよね。
表示するだけだったらそのままでもいいんだけど、その値を使って計算をしたいときは、数値型への変換が必要になるよ。
ちょっと難しいと思うから、頭の片隅にでも置いておくといいよ。
ブール型(bool)
TrueまたはFalseどちらかの値しか持たない型です。条件分岐や論理演算で使用されます。
◼︎bool型の例
def is_even(n):
return n % 2 == 0
print(is_even(8)) #出力: True
print(is_even(5)) #出力: False
シーケンス型(list, tuple)
シーケンス型は、順序をもった複数の要素を扱えるデータ型のことです。
インデックス(番号)を使って要素にアクセスすることができます。
◼︎list: リスト
・[ ]を使用します。
・書き換えすることができます(次のタプルで詳しく解説します)。
・順序を持ちます。各要素にアクセスするときは、0から始まる番号(インデックス)を使用します。
list_date = [1, 2, 3, 4, 5]
print(list_date[0]) #出力: 1
インデックスアクセスの例
fruits = [”apple”, “banana”, “cherry”]
print(fruits[0]) #出力: apple
print(fruits[1]) #出力: banana
print(fruits[2]) #出力: cherry
print(fruits[3]) ⚠︎範囲外を指定するとエラーになります。
☝️後ろから数えることもできます。一番最後の要素がdate[-1]になります。
fruits = [”apple”, “banana”, “cherry”]
print(fruits[-1]) #出力: cherry
print(fruits[-2]) #出力: banana
print(fruits[-3]) #出力: apple
☝️「 : 」で区切って指定することで、連続する要素をまとめて取得することもできます(スライス)。
nums = [10, 20, 30, 40, 50] # インデックスは0, 1, 2, 3, 4
print(nums[1:3]) #出力: [20, 30]
print(nums[2:]) #出力: [30, 40, 50]
print(nums[:3]) #出力: [10, 20, 30]
print(nums[:-3]) #出力: [10, 20]
◼︎tuple: タプル
・( )を使用します。
・書き換えすることはできません(イミュータブルと言います)。
・タプルもインデックスを使って要素にアクセスすることができます(リストの解説を参照)。
tuple_date = (1, 2, 3, 4, 5)
print(tuple_date[0]) #出力: 1
初学者わだの思考〜師匠に聞いてみた〜



イミュータブルって、書き換えできないってどういうこと?
イミュータブルについてだね。それじゃあlistとtupleで比較してみよう!
# リストの例(書き換えできる)
list_date = [1, 2, 3, 4, 5]
list_date[3] = 100
print(list_date) #出力: [1, 2, 3, 100, 5]
# タプルの例(書き換えできない)
tuple_date = (1, 2, 3, 4, 5)
tuple_date[3] = 100
print(tuple_date) ⚠︎エラーになります。
タプルは一度作成すると、要素の追加・削除・変更ができないよ(エラー発生)。
タプルは変わらないデータや、辞書のキー(後述)、安全性を守りたいときに使用されるものだけれど、例えば座標(緯度と経度を使って場所を数字で示すもの)は、緯度・経度の数字が変わってしまうと示す場所が変わってしまうよね。そんな風にデータを変更してはいけないものに使ったりするよ。



なるほど。まだタプルを使う場合の具体的な例があんまりピンときていないけれど、タプルは書き換えできないってことが重要なんだね!
集合型(set)
・{ }で表します。
・重複はできません(同じ値は1つしか持てません)。
a = {1, 2, 2, 3}
print(a) #出力: {1, 2, 3}
☝️順序を持たないため、出力結果は毎回異なります。
fruits = {”apple”, “banana”, “cherry”}
print(fruits)
#出力 {'cherry', 'apple', 'banana'} や
{'cherry', 'banana', 'apple'} となります。
☝️要素の追加・削除ができます。
a = {1, 2, 3}
a.add(4) # 追加
a.remove(2) # 削除(存在しないとエラーになる)
a.discord(10) # 削除(存在しなくてもエラーにならない)
print(a) #出力: {1, 3, 4}
☝️集合演算の例
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
print(a | b) #和集合: {1, 2, 3, 4, 5, 6}
print(a & b) #積集合: {3, 4}
print(a - b) #差集合: {1, 2}
print(a ^ b) #対象差集合: {1, 2, 5, 6}
辞書型(dict)
・「キー(key)」と「値(value)」のペアを格納できるデータ型です。
・{ }を使用します。
・「キー」には変更できない型(文字列、数値、タプルなど)しか使えません。
person = {”name”: “わだ”, “age”: “30”}
print(person) #出力: {'name': 'わだ', 'age': '30'}
☝️ある「キー」の「値」を参照する方法
print(person[”name”]) #出力: わだ
print(person[”age”]) #出力: 30
☝️要素の追加ができます
person = {”name”: “わだ”, “age”: “30”}
person[”city”] = “Osaka”
print(person) #出力: {'name': 'わだ', 'age': '30', 'city': 'Osaka'}
☝️1つの辞書に同じ「キー」を持つことはできず、同じ「キー」を使うと後の値で上書きされます
person = {”name”: “わだ”, “age”: “30”}
person[”age”] = 25
print(person) #出力: {'name': 'わだ', 'age': '25'}
【Python初学者】シリーズの他の記事はこちらから
最後に
どうも、プログラミング初学者のわだです。最後までお読みいただきありがとうございました。この記事は、学びを整理しながら理解を深めるために書いています。まだ駆け出しではありますが、同じように勉強している方の参考になれば嬉しいです。もし誤りや補足があれば、教えていただけると幸いです。










コメント