C
Python/入門/Lesson 03

データ型 (Data Types)

30min·theory
このチャプター
2/7
Python

データ型 (Data Types)

🎯 このlessonを読み終えると

このlessonを最後まで読むと、以下の3つを自信を持って行えるようになります。

  • ✅ int · float · str · bool · list · tuple · dict · set の8種類
  • ✅ mutable vs immutable (list ↔ tuple, dict ↔ frozenset)
  • ✅ 型ヒント (int, str, list[int]) の表記法

学習目標をチェックリストとして手元に置き、すべて答えられるようになったらlessonを閉じてください。

Pythonのデータ型5種類 — コード + 実行結果

Pythonではすべての値はオブジェクトです。type()で型を確認できます。


1. int — 整数(上限なし)

python
年齢 = 28
大きな_数 = 10 ** 100      # 10 の 100 乗 — Python は *任意精度*

print(type(年齢))      # <class 'int'>
print(年齢 + 1)        # 29
print(大きな_数)           # 10000...000 (0 が 100 個)

JavaやCではintが32ビットまたは64ビットに制限されますが、Pythonの整数はメモリが許す限り無制限です。


2. float — 浮動小数点数

python
身長 = 175.5
パイ = 3.14
print(0.1 + 0.2)       # 0.30000000000000004 ← ⚠️ 浮動小数点数の落とし穴!

# 正確に比較するには
import math
print(math.isclose(0.1 + 0.2, 0.3))   # True

0.1 + 0.2 ≠ 0.3の理由: コンピュータは2進数であるため、10進の小数を正確に表現できません。金融計算にはDecimalモジュールを使用してください。


3. str — 文字列(Unicode)

python
名前 = "山田太郎"
挨拶 = 'こんにちは'              # シングルクォート・ダブルクォートどちらもOK
長い_文 = """複数
行の文字列"""                  # 三重クォート

print(len(名前))          # 3 (文字数)
print(名前 + " " + 挨拶)  # 山田太郎 こんにちは
print(名前 * 3)           # 山田太郎山田太郎山田太郎
print(f"名前は {名前}")   # 名前は 山田太郎 (f-string)

+連結繰り返し*を意味します。


4. bool — 真/偽

python
学生 = True
卒業 = False

print(学生 and 卒業)     # False (両方 True の場合のみ)
print(学生 or 卒業)      # True (どちらか一つでも True なら)
print(not 学生)          # False (反対に)

# 隠れた事実: bool は int の子
print(True + True)       # 2
print(sum([True, False, True]))   # 2

5. None — 値がない

python
結果 = None              # "まだ値なし" を示す

if 結果 is None:         # ⚠️ `==` ではなく `is` を使用
    print("値がありません")

関数にreturn文がない場合、自動的にNoneが返されます。JavaScriptのnullに相当します。


6. 型変換(キャスティング)

python
# 文字列 → 数値
年齢_文字列 = "28"
年齢 = int(年齢_文字列)    # 28
print(年齢 + 1)          # 29

# 数値 → 文字列
点数 = 95
print("点数: " + str(点数))   # "点数: 95"

# 落とし穴 — 小数点を含む文字列を直接 int() にはできない
# int("3.14") → ValueError
print(int(float("3.14")))    # 3 (int で切り捨て)

input()の結果は常に文字列です。数値として使用するにはint()またはfloat()での変換が必須です。


まとめ一覧

用途
int28整数
float3.14小数点数
str"hello"文字
boolTrue / False真・偽
NoneNone値なし

type(x) でいつでも確認できます。

💻 データ型の実習
# 4つの基本データ型
age = 25              # int (整数)
height = 175.5        # float (小数)
name = "キムコディング"        # str (文字列)
is_student = True     # bool (真/偽)

# データ型出力
print(type(age))       # <class 'int'>
print(type(height))    # <class 'float'>
print(type(name))      # <class 'str'>
print(type(is_student))# <class 'bool'>

# 文字列 + 数値の結合 (str() 変換が必要!)
print("年齢: " + str(age))     # ✅
# print("年齢: " + age)        # ❌ エラー!文字列 + 数値は直接足せない

🐍 実行してみよう — データ型 (Data Types)

上記の概念を実際にコードで実行してみてください。値を変えながら動作を直接確かめるのが最も効果的な学習方法です。
✏️ Python 코드
📟 コンソール出力
▶ 実行ボタンを押してください
🐍 Pyodideで実際のPythonを実行 — 初回は読み込みに3〜5秒

🤖 AIにこう頼んでみましょう

このlessonの概念を知っていれば、AIに具体的に指示を出せます。曖昧な「直して」ではなく、語彙を持ったリクエスト — それがトークン節約の出発点です。

  • 「このdictの処理をdataclassにリファクタリングして」
  • 「これらの変数に型ヒントを追加して」

なぜこれがトークンを減らすのか

概念を知らないと、AIの回答を受け取っても「それって何ですか?」とまた質問しなければなりません。その「再質問」がトークンを消費します。概念を一度マスターすれば、会話が一回で完結します

先に読むとよい概念: Pythonとは?
次のおすすめ: リストを徹底攻略
データ型 (Data Types) - Python