Python PR

【Python】Noneとは?使い方や評価について

記事内に商品プロモーションを含む場合があります

この記事では、PythonのNoneについて解説します。

Noneは、組み込み定数の1つで値が存在しない場合に使います。

それでは、Noneの型や使い方、判定方法を詳しく見ていきましょう!

None型とは?

Pythonでは、値が存在しない場合にNoneType型のNoneという値を使って表現します。他の言語では、よくnullと表現されます。

x = None
print(x, type(x))  # None <class 'NoneType'>

Noneは、TrueFalseなどと同じ「組み込み定数」なので値を代入することはできません。

Noneは、「値の非存在を表すのに使用される」ということを覚えておきましょう❗️

Noneの評価

Noneは、if文で評価されると「False」として扱われます。

if None:
    print('Trueです')
else:
    print('Falseです')

実行結果

Falseです

オブジェクトがTrueFalseか忘れてしまった場合は、bool()で確認しましょう!

print(bool(''))         # False
print(bool('abc'))      # True
print(bool([]))         # False
print(bool([1, 2, 3]))  # True
print(bool(None))       # False

None判定

Noneを判定する場合は、==演算子ではなくis演算子を使うことが推奨されています。==を使って値を比較するよりもis演算子でidを比較する方が高速です。

obj = '適当なオブジェクト'
print(obj is None)  # False

none_obj = None
print(none_obj is None)  # True

idとは、オブジェクトの識別番号でインスタンスごとに異なる番号を持っています。組み込み定数であるNoneには、必ず1つしかインスタンスが存在しません。

そのため、必ずidが一緒になるのでis演算子で判定することができます。

余談として同じ組み込み定数であるTrueFalseでもis演算子で比較することができます。

flag = True

if flag is True:
    print(True)

実行結果

True

以下のようにTrueとして認識される値との比較には「==」を使います。

flag = 1

if flag == True:
    print(True)

実行結果

True

まとめ

この記事では、PyhtonのNoneについて解説しました。

Noneを見かけたら「その変数には値が無い状態なんだなぁ」と眺めましょう!

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ