✅ Pythonにおける「変数」とは?
変数とは、データ(値)を入れておく名前付きの箱です。
Pythonでは、型を明示せずに代入だけで変数が作られます(動的型付け)。
🔹 変数の基本構文
pythonコピーする編集するx = 10 # 整数(int)
pi = 3.14 # 小数(float)
name = "KK" # 文字列(str)
flag = True # 真偽値(bool)
🔸 意味
変数名 | 値 | データ型 |
---|---|---|
x | 10 | int(整数) |
pi | 3.14 | float(浮動小数点) |
name | "KK" | str(文字列) |
flag | True | bool(真偽値) |
🔹 命名ルールと注意点
- 英数字・アンダースコア(
_
)が使える - 数字から始めてはいけない →
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 |
camelCase | JavaScriptなどで多用 | userName (Pythonではあまり使わない) |
PascalCase | クラス名などに使用 | UserAccount |
UPPER_CASE | 定数(変更しない値)に使う | PI = 3.14159 |
✅ 変数名のつけ方:良い例 vs 悪い例
良い例(⭕) | 説明 |
---|---|
age | 単語で意味が分かる |
user_name | 複数語でも分かりやすい |
_temp_value | 一時的な変数にアンダースコア |
MAX_RETRY_COUNT | 変更しない値(定数) |
悪い例(❌) | 問題点 |
---|---|
1value | 数字から始まる |
my-name | 記号は使えない |
if | Pythonのキーワード |
x (意味不明な短さ) | 読みやすさがない(意図不明) |
✅ まとめ
変数名は、
- 意味が通じる名前
- 一貫したスタイル
- 誤解やエラーを避ける工夫
が重要です。
値の更新と確認
🔹 値の更新(変数の再代入)
Pythonの変数は、一度値を代入してもあとから何度でも別の値に変更(再代入)できます。
✅ 例:整数の更新
x = 5
print(x) # 出力:5
x = x + 3 # 既存の x に 3 を加えて再代入
print(x) # 出力:8
🔁 これを「値の更新」または「再代入」と呼びます。
🔹 演算子を使った値の更新
Pythonでは、よく使う再代入操作に短縮形があります。
✅ よく使う演算子と短縮形
操作 | 通常形 | 短縮形 |
---|---|---|
加算 | x = x + 1 | x += 1 |
減算 | x = x - 1 | x -= 1 |
乗算 | x = x * 2 | x *= 2 |
除算 | x = x / 2 | x /= 2 |
余り | x = x % 3 | x %= 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'> |
None | None | <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