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