Python

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

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

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

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

None型とは?

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

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

Noneは、TrueやFalseなどと同じ「組み込み定数」なので値を代入することはできない

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

Noneの評価

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

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

オブジェクトがTrueかFalseか忘れてしまった場合は、bool()を使って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つしかインスタンスが存在しません。

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

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

flag = True

if flag is True:
    print(True)

実行結果

True

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

flag = 1

if flag == True:
    print(True)

実行結果

True

まとめ

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

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

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