【Python入門】Noneとは?判定方法や空文字との違いについて

Python Python

PythonのNoneについてまとめました。
Noneについて解説した後に、下記のことについて書いています。

・Noneの判定方法
・Noneと空文字の違い
・NoneはNULLなのか?

PythonのNoneとは?

PythonのNoneは、何も値が存在しないことを表します。
空文字列・空リスト・False・0などとは違い、明示的に何もないことを表しています。

下記では、Noneを変数に代入してみました。

test = None

print(test) # None
print(type(test)) # <class 'NoneType'>

test変数にNoneを代入しました。
これでtest変数の値はNoneになります。

その後にtest変数の内容をprint関数で出力しています。
type関数で型を確認してみると、NoneTypeのオブジェクトになっていることがわかります。

関数でreturnする値がない場合も、何もないのでNoneになります。

def returnNone():
    return

print(returnNone()) # None

最初にreturnNoneという関数を作っています。
次の処理で、関数を呼び出して、戻り値を出力するとNoneになっています。

このように値が存在しないときにNoneになります。

Noneの判定方法

Noneを判定するには、is演算子を使います。
下記では、if文の中でis演算子を使って変数がNoneか判定しています。

test = None

if test is None:
    print('testはNoneです。')

最初にtest変数にNoneを代入しています。

その次の処理で、if文でis演算子を使ってNoneか判定しています。
NoneだったときにはTrueが返ってきて、NoneでないときにはFalseが返ってきます。

今回はNoneなのでTrueが返ってきて、if文配下のブロックが実行されます。
結果「testはNoneです。」が出力されて、処理が終了しました。

このようにis演算子を使うことで、判定することができます。

Noneと空文字の違い

Noneと空文字は違います。
空文字は空の文字が変数に入っていますが、Noneが入っている場合には何もないことになります。

空文字を下記のようにNone判定すると、Falseが返ってきます。

emptyText = ''

if emptyText is None:
    print('emptyTestはNoneです')
else:
    print('emptyTestはNoneではないです')

最初にemptyText変数に空文字を代入しています。

その後にif文でNoneか判定しました。
結果、Noneではないので「emptyTestはNoneではないです」が出力されました。

NoneはNULLなのか?

他のプログラム言語では、何もないことを表すときにはNULLを使うことがあります。
PythonではNULLがないので、Noneを使って値がないことを表現しましょう。

コメント

タイトルとURLをコピーしました