Pythonの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を使って値がないことを表現しましょう。

コメント