Python 変数とは?初心者向け完全ガイド

Python 変数とは?初心者向け完全ガイド

この記事でわかること
  • 変数とは何か、なぜ必要なのか
  • Pythonでの変数の使い方と命名規則
  • データ型との関係
  • よくある間違いと対処法

Pythonを学び始めた方が最初に覚えるべき概念、それが変数です。この記事では、Python の変数について、初心者でもわかりやすく解説します。実際に動かせるコード例を交えながら、変数の基本から応用まで一緒に学んでいきましょう。

変数とは

変数とは、データを一時的に保存しておくための「名前付きの箱」のようなものです。プログラミングでは、計算結果やユーザーからの入力など、さまざまなデータを扱います。そのデータに名前を付けて保存しておくことで、後から何度でも使い回すことができます。

📦 変数のイメージ

変数名
age
25

「age」という箱に「25」を入れているイメージ

生徒
生徒
なぜ変数が必要なの?直接数字を書けばいいのでは…?🤔
先生
先生
いい質問ですね!確かに一度だけ使う値なら直接書いてもOKです。でも同じ値を何度も使う場合や、後から値を変更したい場合は変数が超便利なんです!

💡 例えば消費税率を考えてみましょう

消費税率を変数tax_rate = 0.10にしておけば、税率が変わったときも1箇所を修正するだけでプログラム全体に反映されます。直接「0.10」と書いていたら、使っている箇所をすべて探して修正する必要があります。

Python での変数の基本的な使い方

Python で変数を使うには、変数名と値を=(イコール)でつなぐだけです。これを「代入」と呼びます。

変数の宣言と代入

Python では、他のプログラミング言語のように「型」を事前に宣言する必要がありません。値を代入するだけで、自動的に変数が作られます。

# 変数に値を代入する
name = "太郎"
age = 25
height = 170.5

# 変数の値を表示する
print(name)    # 出力: 太郎
print(age)     # 出力: 25
print(height)  # 出力: 170.5

上のコードで作られた変数
変数名 データ型
name “太郎” 文字列(str)
age 25 整数(int)
height 170.5 小数(float)
先生
先生
Pythonが自動的にデータ型を判断してくれるので、とても手軽に変数を使い始められますよ!✨

変数の値を更新する

変数は「変わる数」と書くように、値を後から変更できます。

# 最初の代入
score = 80
print(score)  # 出力: 80

# 値を更新
score = 95
print(score)  # 出力: 95

# 計算結果を代入することも可能
score = score + 5
print(score)  # 出力: 100

変数 score の変化
  • 1回目
    score = 80 → 箱に80が入る
  • 2回目
    score = 95 → 80が消えて95に置き換わる
  • 3回目
    score = score + 5 → 95+5で100になる

複数の変数を同時に代入する

Python では、複数の変数に一度に値を代入することもできます。

# 複数の変数に同時代入
x, y, z = 1, 2, 3
print(x, y, z)  # 出力: 1 2 3

# 同じ値を複数の変数に代入
a = b = c = 0
print(a, b, c)  # 出力: 0 0 0

# 変数の値を交換(Pythonならではの便利な書き方)
x, y = y, x
print(x, y)  # 出力: 2 1

📝 Pythonならではの便利テクニック

x, y = y, xで変数の値を一発で交換できます。他の言語では一時変数が必要になることが多いですが、Pythonはシンプルに書けます!

変数の命名規則

変数名には、いくつかのルールがあります。これを守らないとエラーになったり、コードが読みにくくなったりします。

必ず守るべきルール(違反するとエラー)

必須ルール
  • 変数名は英字またはアンダースコア(_)で始める
  • 変数名に使えるのは英数字とアンダースコアのみ
  • 予約語(if, for, class など Python の構文で使う単語)は使えない
  • 大文字と小文字は区別される(age と Age は別の変数)
# ◯ 有効な変数名の例
user_name = "花子"
userName = "花子"
_private = "内部用"
count2 = 10

# × 無効な変数名(エラーになる)
# 2count = 10      # 数字で始まっている
# user-name = "花子"  # ハイフンは使えない
# class = "A"      # 予約語は使えない

✓ OK

  • user_name
  • userName
  • _private
  • count2
  • MAX_SIZE

✗ NG

  • 2count(数字で始まる)
  • user-name(ハイフン)
  • class(予約語)
  • my name(スペース)

推奨される命名規則(読みやすさのため)

  • スネークケースを使う:単語をアンダースコアでつなぐ(例:user_name
  • 意味のある名前を付ける:xよりuser_ageのほうがわかりやすい
  • 定数(変更しない値)は大文字で書く:MAX_SIZE = 100
生徒
生徒
日本語の変数名は使えるの?
先生
先生
Python 3では日本語の変数名も使えます。でも実務では英語が一般的です。チーム開発やライブラリとの互換性を考えて、英語で命名する習慣をつけましょう!

変数とデータ型の関係

Python の変数は「動的型付け」という特徴を持っています。これは、変数に格納するデータの種類(型)を事前に宣言する必要がなく、実行時に自動的に決まるということです。

主なデータ型

# 整数(int)
count = 42
print(type(count))  # 出力: <class 'int'>

# 浮動小数点数(float)
price = 1980.5
print(type(price))  # 出力: <class 'float'>

# 文字列(str)
message = "こんにちは"
print(type(message))  # 出力: <class 'str'>

# 真偽値(bool)
is_active = True
print(type(is_active))  # 出力: <class 'bool'>

# リスト(list)
fruits = ["りんご", "バナナ", "みかん"]
print(type(fruits))  # 出力: <class 'list'>

Python の主なデータ型
説明
int 整数 42, -10, 0
float 小数 3.14, -0.5
str 文字列 “Hello”, ‘太郎’
bool 真偽値 True, False
list リスト [1, 2, 3]

型の変換(キャスト)

データ型を別の型に変換したい場合は、型変換(キャスト)を使います。

# 文字列を整数に変換
age_str = "25"
age_int = int(age_str)
print(age_int + 5)  # 出力: 30

# 整数を文字列に変換
number = 100
number_str = str(number)
print("点数は" + number_str + "点です")  # 出力: 点数は100点です

# 整数を浮動小数点数に変換
x = 10
x_float = float(x)
print(x_float)  # 出力: 10.0

よくある間違いと対処法

変数を使い始めたばかりの方がよくやってしまう間違いを紹介します。

間違い1: 未定義の変数を使う

✗ NG

# NameError が発生する
print(undefined_variable)
# NameError: name 'undefined_variable' is not defined

✓ OK

# 先に変数を定義する
my_variable = "値"
print(my_variable)

⚠️ 対処法:変数を使う前に、必ず値を代入して定義しておきましょう。

間違い2: 文字列と数値を直接結合する

✗ NG

age = 25
message = "私は" + age + "歳です"
# TypeError: can only concatenate str (not "int") to str

✓ OK

2つの方法があります:

# 方法1: 数値を文字列に変換する
message = "私は" + str(age) + "歳です"

# 方法2: f文字列を使う(推奨!)
message = f"私は{age}歳です"
print(message)  # 出力: 私は25歳です
先生
先生
f文字列がおすすめです!f"..."の形式で書いて、波括弧{}の中に変数を直接書けるので便利ですよ✨

間違い3: イコール(=)と比較演算子(==)を混同する

# = は「代入」
x = 10  # xに10を代入

# == は「比較」(等しいかどうか)
if x == 10:  # xが10と等しいかを比較
    print("xは10です")

# 間違いやすい例
# if x = 10:  # これはエラーになる(代入と比較の混同)

📝 覚え方

  • = → 「代入」(箱に入れる)
  • == → 「比較」(等しいか確認)
生徒
生徒
「NameError: name ‘○○’ is not defined」と出たらどうすればいい?
先生
先生
これは「その名前の変数が見つからない」というエラーです。原因は主に3つ!
① 変数名のタイプミス
② 変数を定義する前に使おうとした
③ 変数のスコープ(有効範囲)外で使おうとした
まずはスペルミスがないか確認しましょう!

変数のスコープ(有効範囲)

変数には「スコープ」という有効範囲があります。どこで変数を定義したかによって、使える範囲が変わります。

# グローバル変数(プログラム全体で使える)
global_var = "どこからでも使える"

def my_function():
    # ローカル変数(関数内だけで使える)
    local_var = "この関数内でだけ使える"
    print(global_var)   # ◯ グローバル変数は使える
    print(local_var)    # ◯ ローカル変数も使える

my_function()
print(global_var)   # ◯ グローバル変数は使える
# print(local_var)  # × エラー!ローカル変数は関数外では使えない

🔍 変数のスコープ(有効範囲)

📦 グローバルスコープ(プログラム全体)

global_var = "どこからでも使える"

🔒 ローカルスコープ(関数内のみ)

local_var = "この関数内でだけ使える"

関数の中で定義した変数は、その関数の中でしか使えません。これを「ローカル変数」と呼びます。一方、関数の外で定義した変数は「グローバル変数」として、プログラム全体から参照できます。

まとめ

この記事のポイント
  • 変数とは:データを保存するための名前付きの箱
  • 基本的な使い方変数名 = 値で代入する
  • 命名規則:英字で始め、スネークケースで意味のある名前を付ける
  • データ型:Python は動的型付けで、自動的に型が決まる
  • よくある間違い:未定義変数の使用、型の不一致、=と==の混同
  • スコープ:変数には有効範囲があり、定義場所で決まる

変数はプログラミングの基礎中の基礎です。この記事で学んだことを実際にコードを書いて試してみてください。手を動かすことで、より深く理解できるようになります。

先生
先生
次のステップとして、変数と一緒に使うことの多い「データ型」や「条件分岐(if文)」についても学んでみましょう!💪