✅ Pythonにおける「変数」とは?


変数とは、データ(値)を入れておく名前付きの箱です。
Pythonでは、型を明示せずに代入だけで変数が作られます(動的型付け)


🔹 変数の基本構文

pythonコピーする編集するx = 10        # 整数(int)
pi = 3.14     # 小数(float)
name = "KK"   # 文字列(str)
flag = True   # 真偽値(bool)

🔸 意味

変数名データ型
x10int(整数)
pi3.14float(浮動小数点)
name"KK"str(文字列)
flagTruebool(真偽値)

🔹 命名ルールと注意点

  • 英数字・アンダースコア(_)が使える
  • 数字から始めてはいけない → 1st_name
  • 予約語(if, for, def など)は使えない

✅ 良い例:

pythonコピーする編集するmy_name = "謙一郎"
score = 95

❌ 悪い例:

pythonコピーする編集する1score = 95        # 数字から始めてはいけない
def = "関数"       # def は予約語なのでダメ

🔹 値の更新と確認

pythonコピーする編集するx = 5
print(x)      # 出力: 5

x = x + 1
print(x)      # 出力: 6

Pythonでは、代入された後に自由に上書きできます。


🔹 型の確認 type()

pythonコピーする編集するa = 123
print(type(a))   # <class 'int'>

b = "hello"
print(type(b))   # <class 'str'>

🔹 変数同士の計算・結合

pythonコピーする編集するa = 10
b = 5
print(a + b)      # → 15(加算)

name = "川上"
print("こんにちは、" + name + "さん")  # 文字列結合

🔹 同時代入(複数の変数に同時に代入)

pythonコピーする編集するx, y = 1, 2
a = b = 100 # 両方に100が代入される

🔹 まとめ図(イメージ)

iniコピーする編集するx = 10     → [x]──▶ 10
name = "KK" → [name]──▶ "KK"


命名ルールと注意点


✅ Python 変数の命名ルール(変数名の付け方)

Pythonでは変数名(識別子)に一定のルールがあります。以下に詳しくまとめます。


🔸 1. 使用できる文字

使える
英小文字x, name, total_sum
英大文字X, Name, TotalSum
数字0~9(先頭には使えない)
アンダースコア _my_var, _temp(先頭や途中)

🔸 2. 使用できないもの(違反するとエラー)

  • 数字から始まる名前1name = "エラー" # ❌
  • 記号・空白my-name = 10 # ❌(ハイフン) my name = 10 # ❌(空白)
  • Pythonのキーワード(予約語)
    • 例:if, for, def, class, return, True, False, None など
    def = "関数" # ❌ def はキーワード

確認するには:

import keyword
print(keyword.kwlist)  # Pythonの予約語一覧が表示される

🔸 3. 書き方のスタイル(慣例)

スタイル名説明
snake_case一般的なPython変数user_name, total_price
camelCaseJavaScriptなどで多用userName(Pythonではあまり使わない)
PascalCaseクラス名などに使用UserAccount
UPPER_CASE定数(変更しない値)に使うPI = 3.14159

✅ 変数名のつけ方:良い例 vs 悪い例

良い例(⭕)説明
age単語で意味が分かる
user_name複数語でも分かりやすい
_temp_value一時的な変数にアンダースコア
MAX_RETRY_COUNT変更しない値(定数)
悪い例(❌)問題点
1value数字から始まる
my-name記号は使えない
ifPythonのキーワード
x(意味不明な短さ)読みやすさがない(意図不明)

✅ まとめ

変数名は、

  • 意味が通じる名前
  • 一貫したスタイル
  • 誤解やエラーを避ける工夫

が重要です。


値の更新と確認



🔹 値の更新(変数の再代入)

Pythonの変数は、一度値を代入してもあとから何度でも別の値に変更(再代入)できます

✅ 例:整数の更新

x = 5
print(x)    # 出力:5

x = x + 3   # 既存の x に 3 を加えて再代入
print(x)    # 出力:8

🔁 これを「値の更新」または「再代入」と呼びます。


🔹 演算子を使った値の更新

Pythonでは、よく使う再代入操作に短縮形があります。

✅ よく使う演算子と短縮形

操作通常形短縮形
加算x = x + 1x += 1
減算x = x - 1x -= 1
乗算x = x * 2x *= 2
除算x = x / 2x /= 2
余りx = x % 3x %= 3

✅ 例:

count = 10
count += 1     # 11
count *= 2     # 22
print(count)   # 出力:22

🔹 値の確認(print関数とtype関数)

✅ 値を出力するには print()

x = "Zk理論"
print(x)    # → Zk理論

✅ データ型を確認するには type()

y = 3.14
print(type(y))   # → <class 'float'>

z = True
print(type(z))   # → <class 'bool'>

🔹 複数の変数更新(まとめて代入)

Pythonでは一行で複数の変数を更新することもできます。

a, b = 1, 2
a, b = b, a + b
print(a, b)  # 出力:2 3

これは「同時代入」とも呼ばれ、スワップ処理などにも使えます。


✅ まとめ図

x = 10       ← 最初の値
x = x + 5    ← 更新(新しい値:15)
x *= 2       ← 更新(新しい値:30)



型の確認 type()


type()関数とは?

type(値や変数)

この関数は、その値や変数がどのデータ型(クラス)なのかを教えてくれるものです。


🔹 基本の使用例

x = 42
print(type(x))       # 出力: <class 'int'>

y = 3.14
print(type(y))       # 出力: <class 'float'>

z = "Zk理論"
print(type(z))       # 出力: <class 'str'>

flag = True
print(type(flag))    # 出力: <class 'bool'>

🔹 よく使うデータ型と type() の出力

データ型type()の出力
整数100<class 'int'>
小数3.14<class 'float'>
文字列"KK"<class 'str'>
真偽値True<class 'bool'>
リスト[1, 2, 3]<class 'list'>
辞書{"a":1}<class 'dict'>
タプル(1, 2)<class 'tuple'>
NoneNone<class 'NoneType'>

🔹 応用:条件で型を判断

value = 123

if type(value) == int:
    print("整数です")
elif type(value) == float:
    print("小数です")

🔹 補足:isinstance()との違い

Pythonでは、type()よりも柔軟な判定ができる関数がもう1つあります。

isinstance(変数, 型)

例えば:

x = 10
print(isinstance(x, int))  # True
  • isinstance()継承された型もTrueになります(オブジェクト指向で重要)
  • type()完全一致で判定します

✅ まとめ

  • type()変数のデータ型を調べる関数
  • 学習中のプログラム動作確認・デバッグにも使える
  • 型を意識することで、エラーを防ぎやすくなる



変数同士の計算・結合


✅ 1. 数値型(int, float)の計算

🔸 基本演算

a = 10
b = 3

print(a + b)  # 加算 → 13
print(a - b)  # 減算 → 7
print(a * b)  # 乗算 → 30
print(a / b)  # 除算 → 3.333...
print(a % b)  # 余り → 1
print(a ** b) # べき乗 → 1000(10の3乗)

✅ 2. 文字列型(str)の結合

🔸 +演算子による文字列結合

first = "川上"
last = "謙一郎"

full_name = first + " " + last
print(full_name)  # → 川上 謙一郎

🔍 注意:数値と文字列は直接は結合できません

age = 35
print("年齢は " + str(age) + " 歳です")  # 正解:str()で変換

# print("年齢は " + age + " 歳です") → エラー ❌(型が違う)

✅ 3. 文字列と数値の混合出力(f文字列)

name = "KK"
age = 35
print(f"{name}さんは {age} 歳です")
  • f"..." の中で {} で変数を埋め込める
  • 非常に便利で推奨される書き方

✅ 4. リスト同士の結合(+)

list1 = [1, 2]
list2 = [3, 4]
combined = list1 + list2
print(combined)  # → [1, 2, 3, 4]

✅ 5. 型を意識しよう!

Pythonでは、異なる型同士を混ぜて使うとエラーになります。
なので、必要に応じて「型変換(キャスト)」を行います。

🔸 主な変換関数

関数説明
str()数値 → 文字列str(100)"100"
int()文字列 → 数値int("100")100
float()整数 → 小数float(5)5.0

✅ まとめ

組み合わせ方法結果
数値 + 数値+, -, *, /計算可能
文字列 + 文字列+連結
数値 + 文字列❌(型変換が必要)str()
f文字列f"..." + {}推奨形式


同時代入(複数の変数に同時に代入)



✅ 同時代入のまとめ図(イメージ)

同時代入の基本構文:
  a, b = 10, 20

       ┌───┐      ┌───┐
値:  │ 10│      │ 20│
       └───┘      └───┘
         ↓          ↓
       ┌─────┐   ┌─────┐
変数:│  a   │ ← │  b   │
       └─────┘   └─────┘

✅ スワップ(値の入れ替え)

a = 1, b = 2

a, b = b, a

       ┌───┐      ┌───┐
値:  │ b │      │ a │
       └───┘      └───┘
         ↓          ↓
       ┌─────┐   ┌─────┐
変数:│  a   │ ← │  b   │
       └─────┘   └─────┘

結果:a = 2, b = 1

✅ リストのアンパック(分解代入)

data = [100, 200, 300]

a, b, c = data

リスト:
 ┌───────────────┐
 │ 100 │ 200 │ 300 │
 └───────────────┘
    ↓     ↓     ↓
   a     b     c

✅ 同じ値を複数の変数に代入(連鎖代入)

x = y = z = 999

      ┌──────────┐
      │   999    │
      └──────────┘
         ↓  ↓  ↓
        x   y   z