カテゴリ: Python 更新日: 2025/07/15

Pythonの条件式でNoneを判定する方法!is None vs == None の違い

Pythonの条件式でNoneを判定する方法!is None vs == None の違い
Pythonの条件式でNoneを判定する方法!is None vs == None の違い

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

生徒

「Pythonで値がNoneかどうかを判定したいんですが、== Noneis Noneってどう違うんですか?」

先生

「どちらもNoneかどうかを調べる方法ですが、実は使い方に違いがあるんです。初心者のうちから正しく使えるようになっておくと安心ですよ。」

生徒

「違いがわかりにくいので、具体的に教えてください!」

先生

「それでは、Noneの意味からはじめて、==isの違いまで丁寧に解説していきましょう!」

-

1. PythonのNoneとは?初心者でもわかる意味と使い道

1. PythonのNoneとは?初心者でもわかる意味と使い道
1. PythonのNoneとは?初心者でもわかる意味と使い道

PythonにおけるNone(ノーン)は、「なにもない」という状態を表す特別な値です。

たとえば、関数が何も返さなかったとき、Noneが使われたり、まだ値を設定していない変数の初期状態に使ったりします。

つまり、Noneは「空っぽ」や「未設定」といった意味合いで使われることが多いのです。


result = None
print(result)

None

2. Noneを条件式で判定する方法

2. Noneを条件式で判定する方法
2. Noneを条件式で判定する方法

Noneかどうかを調べるには、Pythonでは次のような条件式を使います。


if value is None:
    print("値はNoneです")

このように、is Noneを使うのが正しい書き方です。

ところが、== Noneと書いているコードもたまに見かけます。これでも動作はすることがありますが、推奨されません。

3. isと==の違いをわかりやすく解説

3. isと==の違いをわかりやすく解説
3. isと==の違いをわかりやすく解説

Pythonでは、is==は似ているようで違う働きをします。

  • ==(イコールイコール)は「中身が等しいかどうか」を比較します。
  • isは「まったく同じものかどうか」、つまり「同一オブジェクトかどうか」を比較します。

NoneはPythonでただ1つしか存在しない特別なオブジェクトなので、is Noneで比較するのが正しい使い方です。

4. == Noneで比較したときの落とし穴

4. == Noneで比較したときの落とし穴
4. == Noneで比較したときの落とし穴

== Noneで比較すると、たまたま中身がNoneと等しいだけの値でもTrueになる可能性があります。つまり、誤判定が起きやすいということです。

たとえば、クラスで独自に__eq__()(ダブルアンダースコア イークオール)という比較のルールを作っていた場合、== Noneの判定結果が変わってしまうことがあります。

そのようなバグを防ぐためにも、Noneとの比較にはis Noneを使いましょう。

-

5. 実際のサンプルコードで違いを体験

5. 実際のサンプルコードで違いを体験
5. 実際のサンプルコードで違いを体験

次のコードでは、is None== Noneの両方を使って、挙動の違いを確認してみましょう。


a = None
b = None

print(a == b)   # True(中身が等しい)
print(a is b)   # True(同じオブジェクト)

x = []
y = []

print(x == y)   # True(中身は同じ)
print(x is y)   # False(別のオブジェクト)

このように、==は中身の比較、isは本体そのものの比較という違いがあります。

6. None以外にもisを使う場面がある

6. None以外にもisを使う場面がある
6. None以外にもisを使う場面がある

isNoneだけでなく、TrueFalseなどの「唯一の値」にも使うことがあります。ただし、is Trueis Falseは使い方が難しく、初学者にはおすすめできません。

まずはis Noneの使い方をしっかり覚えることを優先しましょう。

7. Noneかどうかを判定するよくあるシーン

7. Noneかどうかを判定するよくあるシーン
7. Noneかどうかを判定するよくあるシーン

PythonでNoneを判定するのは、次のような場面でよく使います。

  • 関数の戻り値がNoneかどうか確認するとき
  • 変数がまだ値を持っていないか調べるとき
  • 辞書やデータベースから値を取得したときにNoneが返ってくることがある

これらの場面では必ずis Noneで比較する癖をつけておきましょう。

8. Noneを判定する条件式の書き方まとめ

8. Noneを判定する条件式の書き方まとめ
8. Noneを判定する条件式の書き方まとめ

最後に、Noneを使った判定のパターンを整理しておきます。

  • if value is None:(valueがNoneのとき)
  • if value is not None:(valueがNoneでないとき)

is not Noneは「None以外のときに処理をしたい」ときによく使います。


name = None

if name is None:
    print("名前が設定されていません")
else:
    print("こんにちは", name)
コメント
コメント投稿は、ログインしてください

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

カテゴリの一覧へ
新着記事
PHPの関数の引数と戻り値を完全ガイド!初心者でもわかる基本の使い方
Pythonの例外発生の基本をマスター!初心者でもわかるraise文の使い方ガイド
Pythonでタプルの要素数を取得する方法(len()の使い方)初心者でもわかる数え方の基本
Pythonの辞書をデータフレーム(Pandas)に変換する方法 初心者向け完全ガイド
人気記事
No.1
PHP&Python記事人気No1
Pythonの例外処理をやさしく解説!初心者でもわかるtry-exceptの基本と使い方
No.2
PHP&Python記事人気No2
PHPでJSONデータを扱う方法をやさしく解説!初心者でもわかるjson_encodeとjson_decode
No.3
PHP&Python記事人気No3
Pythonのデータ型変換まとめ!int, float, str, list などの変換方法
No.4
PHP&Python記事人気No4
PHPのデフォルト引数の設定方法をやさしく解説!初心者でも安心の入門ガイド
-