Python

Pythonで空文字のnullオブジェクトを意味するNoneについて

By 2021年4月29日No Comments

この記事では、Pythonで空文字であるnullオブジェクトを意味するNoneについての解説していきます。

nullオブジェクトは空文字を意味してPythonではNoneとして扱われます。Noneは値が定義されていない事をいいます。そんなNoneの確認の仕方や判定方法をみていきましょう。

Pythonでヌル文字を意味するNoneを確認する方法

PythonでNoneを確認できる一つとして辞書型のオブジェクトを扱う時にNoneがでてきます。Noneかどうかの確認をするにはget( )関数を使う事ができます。get( )関数は辞書内のキーを取得することができる関数になります。構文は下記になります。

get(キー)

name = {1:"ヤマダ", 2:"タナカ", 3:"ウエダ"}
print(name.get(3))

結果:

ウエダ

辞書内のキー「3」を指定をすると紐付かれている値「ウエダ」を取得することができましたが、get( )関数に辞書内に存在しなキーを指定するとヌル文字を取得することになるのでNoneが返されます。

name = {1:"ヤマダ", 2:"タナカ", 3:"ウエダ"}
print(name.get(5))

結果:

None

辞書内に存在しないキーを指定したのでヌル文字であるNoneが返されました。このようにPythonでは空文字であるnullオブジェクトを取得するとNoneが返されます。

Noneは関数の戻り値などでも表示されることがあります。

def hello():
    print("みなさんこんにちわ。")
print(hello())

結果

みなさんこんにちわ。
None

関数にreturn文がなく関数の戻り値はないのでエラーにはならずに関数内ではprint( )関数は実行されています。しかし、戻り値を指定するreturn文がないので関数を出力しようとするとNoneが返されています。

下記の関数のようにreturn文を指定すると空文字のnullオブジェクトではなくなるので関数を出力する時にNoneは返されません。

def hello():
    return "みなさんこんにちわ。"
print(hello())

結果:

みなさんこんにちわ。

このように、返り値があるとNoneは返されませんが、返り値がない状態の関数を出力しようとすると空文字を指定することになるのでNoneが返されてしまいます。

Pythonで空文字のnullを意味するNoneかどうかを判定する方法

Pythonの処理を行なう前にNoneかどうかを判定することができます。Noneかどうかの判定をするためには、if文とis演算子を使います。is演算子は2つのオブジェクトが一致しているかどうかを比較するための演算子です。オブジェクトがNoneのときはブール値がTrueで、オブジェクトがNoneでないときはFalseになります。構文は下記になります。

オブジェクト is None

if文にis Noneとすることで辞書内のキーが存在するか確認することができます。

name = {1: "ヤマダ", 2: "タナカ", 3: "ウエダ"}

if name.get(4) is None:
    print("None")

結果:

None

辞書内のにget( )関数で指定したキーがなかったのでNoneと判定されました。

キーが存在する場合は結果は何も表示されません。

if name.get(1) is None:
  print("None")

結果:

このようにis Noneでは値が存在する場合はNoneと判定されません。

is not文でもNoneかどうかの判定をすることができます。この場合は先程のis文とは反対の動作をするのでNoneではなく値が存在する場合に結果が出力されます。

name = {1: "ヤマダ", 2: "タナカ", 3: "ウエダ"}

if name.get(1) is not None:
    print("Noneじゃない。")

結果:

Noneじゃない。

辞書内に値が存在するので結果が出力されました。

判定がNoneになる空文字のnullオブジェクトを指定すると値が存在しないので結果は何も出力されないことになります。

if name.get(4) is not None:
    print("Noneじゃない。")

結果:

このようにis文とis not文を使うことでNoneかどうかの判定をすることができます。

上記のようなNoneを判定する時に、結果に何も出力されないようなことをなくすにはif文にelseを使ってNoneの時のとNoneではない時の処理をすると実現することができます。構文は下記になります。

if オブジェクト is None:

    Noneになる時の処理

else:

    Noneにならない時の処理

def name(i):
    if names.get(i) is None:
        print("Noneです。")
    else:
        print(names.get(i))

name(4)

結果:

Noneです。

関数にreturn文の返り値にNoneを指定して判定する事もできます。「return None」と指定する事で戻り値がなかった場合にNoneを返し、それ以外の場合はオブジェクトを出力されます。

def hello(i):
    if i > 5 :
        return "こんにちわ。"
    else:
        return None
print(hello(7))
print(hello(1))

結果

こんにちわ。
None

関数の引数にif文の条件にあてはまる引数を指定すると「こんにちわ。」という文字列を返し、条件に一致しない引数を指定するとNoneを返しているのが確認できます。

このように、Noneであるかどうかの判定をすることができます。Noneを扱うことで、条件処理したときのエラーを回避する事ができます。

まとめ

今回はPythonで空文字であるnullオブジェクトを意味するNoneについての解説でした。Noneの扱い方を理解するとエラーに事前に対応できるプログラムを書くことができます。以上、PythonでのNoneの扱い方や判定をする方法についてでした。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト
HOSL

Author HOSL

More posts by HOSL