カテゴリ: Python 更新日: 2025/05/29

Pythonの変数スコープとは?初心者でもわかるローカル変数とグローバル変数の違い

Pythonの変数スコープとは?ローカル変数とグローバル変数の違い
Pythonの変数スコープとは?ローカル変数とグローバル変数の違い

先生と生徒の会話形式で理解しよう

生徒

「Pythonで変数を作ったのに、別の場所で使えなかったんです。どうしてですか?」

先生

「それは『スコープ』の問題かもしれないね。スコープとは、変数が使える範囲のことなんだ。」

生徒

「スコープって、難しそう…。プログラミングもパソコンも初めてなので、わかるか不安です。」

先生

「大丈夫。スコープは日常のたとえで説明するととてもわかりやすいから、一緒にゆっくり学んでいこう!」

-

1. Pythonの変数とスコープとは?

1. Pythonの変数とスコープとは?
1. Pythonの変数とスコープとは?

Python(パイソン)では、変数とは「情報を入れておく名前のついた箱」のようなものです。

たとえば、name = "さくら"と書くと、「name」という名前の箱に「さくら」という情報が入ります。

でも、この変数がどこからでも使えるとは限りません。変数が使える範囲を「スコープ」と呼びます。

たとえば、学校のロッカーは、その学校の生徒だけが使えるように、Pythonでも変数によって「使える場所」が決まっています。

2. ローカル変数とは?関数の中だけで使える変数

2. ローカル変数とは?関数の中だけで使える変数
2. ローカル変数とは?関数の中だけで使える変数

ローカル変数(local variable)は、関数の中で作られた変数で、その関数の中でしか使えません。

たとえば、家の中だけで使えるテレビのリモコンのように、外では使えないというイメージです。


def greet():
    name = "たかし"
    print("こんにちは、" + name)

greet()
print(name)  # ここではエラーになります

こんにちは、たかし
NameError: name 'name' is not defined

このように、nameという変数は関数の中でしか使えません。関数の外で使おうとすると、Pythonは「そんな変数は知らないよ」と言ってエラーになります。

3. グローバル変数とは?どこからでも使える変数

3. グローバル変数とは?どこからでも使える変数
3. グローバル変数とは?どこからでも使える変数

グローバル変数(global variable)は、関数の外で作られた変数です。これはプログラムのどこからでも使えます。

たとえるなら、教室の黒板に書いたメモのようなもので、誰でも見たり使ったりできます。


school = "サクラ小学校"

def show_school():
    print("通っている学校は" + school + "です")

show_school()

通っている学校はサクラ小学校です

このように、schoolという変数は関数の外で作られたので、関数の中からでも見ることができます。

4. グローバル変数を関数の中で書き換えるには?

4. グローバル変数を関数の中で書き換えるには?
4. グローバル変数を関数の中で書き換えるには?

関数の中でグローバル変数の中身を変えたいときは、globalという特別な言葉を使います。


counter = 0

def add_one():
    global counter
    counter = counter + 1

add_one()
print(counter)

1

global counterと書くことで、「このcounterは外にある変数ですよ」とPythonに伝えることができます。

これを忘れると、Pythonは「これは関数の中で新しく作られたローカル変数だ」と思い込んでしまい、エラーになります。

-

5. なぜスコープを理解することが大切なの?

5. なぜスコープを理解することが大切なの?
5. なぜスコープを理解することが大切なの?

スコープを知らずにプログラムを書くと、「思ったとおりに動かない」「エラーになる」といったトラブルが起こります。

たとえば、こんな例です。


total = 50

def update_total():
    total = total + 10

update_total()

UnboundLocalError: local variable 'total' referenced before assignment

このエラーは、「関数の中でtotalを使おうとしたけど、ローカル変数として見つからなかった」という意味です。

このようなときはglobalを使って、外の変数を使うことを明示すれば解決できます。

6. ローカル変数とグローバル変数の違いを身近なたとえで理解しよう

6. ローカル変数とグローバル変数の違いを身近なたとえで理解しよう
6. ローカル変数とグローバル変数の違いを身近なたとえで理解しよう

ローカル変数は、家の中だけで使うもの(たとえばリモコンやおもちゃ)です。

グローバル変数は、みんなで使えるもの(たとえば学校の黒板やチャイム)です。

このように、「どこで使えるのか?」を意識するだけで、プログラムのエラーを減らすことができます。

スコープは、プログラミングをするときの「交通ルール」のようなものです。しっかり覚えて、安全に楽しくPythonを使いましょう!

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
Pythonで複数の条件を組み合わせる方法!and・or・notの使い方
Pythonの例外処理(try-except)の基本と応用!エラーハンドリング完全ガイド
Pythonの三項演算子とは?一行で条件分岐を記述する方法
Pythonのmatch文(パターンマッチング)の使い方!switch文の代替
人気記事
No.1
Java&Spring記事人気No1
PHP の関数のスコープを完全解説!ローカル変数とグローバル変数の違いとは?
No.2
Java&Spring記事人気No2
PHP のセッションの有効期限を設定する方法(session_set_cookie_params)
No.3
Java&Spring記事人気No3
PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
No.4
Java&Spring記事人気No4
PHP で JSON ファイルを読み書きする方法(json_encode, json_decode)初心者向けガイド!
-