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

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入門:基礎文法編

74レッスン
コース

Python中級 内包表記・高階関数・クラス入門

58レッスン
コース

Python道場 商店街ポイントカードの10問

10レッスン
Pythonコースの全編を見る