プログラミングの用語一覧へ
このページの目次

Noneとは?

読み方:none

最終更新:2026/08/18

3秒でわかる

Python で値が存在しないことだけを表す専用の値。未設定を 0 や空文字と区別するために使い、判定は is で行います。

もう少し詳しく

どういうものか

None は Python で「値が無い」ことだけを表す特別な値になる。0 でも空文字でも False でもなく、NoneType 型の唯一の値として存在する。値を返さない関数は暗黙のうちに None を返し、辞書の get で見つからなかったときにも None が返る。他の言語の null や nil と役割が近い。

なぜ必要か

「まだ入力されていない」と「0 と入力された」は区別しなければならない。体重の初期値を 0 にすると、未入力の人が体重 0 と記録されて平均が狂う。None を入れておけば、値そのものと未設定の状態を別物として扱える。関数が結果を返せなかったことを、例外を投げずに伝える手段としても使われる。

具体例

def find_user(users, name):
    for u in users:
        if u["name"] == name:
            return u
    return None          # 見つからなかった

user = find_user(users, "sato")
if user is None:
    print("該当なし")
else:
    print(user["age"])

つまずきやすいところ

判定を == で書くのが最初の落とし穴になる。None は常に一つしか存在しないため、同一かどうかを見る is None を使う。== はクラス側で定義を変えられるので、独自クラスが相手だと意図しない結果になりうる。

もう一つ多いのが AttributeError で、None に対してメソッドを呼んだときに出る。'NoneType' object has no attribute というメッセージが出たら、値の中身ではなく「その変数へ None が入った経路」を探す。list.sort() や list.append() は None を返すので、x = lst.sort() と書くと x が None になる、という取り違えもここに含まれる。

似た用語との違い

値意味真偽値として
None値が存在しない偽
0数値としてのゼロ偽
""空の文字列偽
False論理値の偽偽


すべて偽として扱われるため、if not x では四つを区別できない。未設定だけを見分けたいときは if x is None と書く。

覚え方

None は「箱が空」ではなく「箱がまだ置かれていない」状態にあたる。空の箱 (空文字や空リスト) と、箱そのものが無い状態は別物になる。この区別を保つと、集計から未入力を除く処理が素直に書ける。

知識のつながり

サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

現在地Noneプログラミング

LEARN BY DOING

この用語を、教材で使ってみる

直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

Pythonコースの全編を見る