Python None値とは
はじめに
ここでは、PythonのNone値とその用途について説明します。
None値とは
None値とはNoneTypeというデータ型の値で、値がないことを表します。
他のプログラミング言語におけるnullやnilに相当します。
ブール型のTrue、Falseと同じように大文字のNから始まります。
用途
値を返す必要がない関数ではNoneを返す
Pythonでは、すべての関数は必ず戻り値を持つ必要があります。しかしprint()
のように、値を返す必要がない場合もあります。値を返す必要がない場合には、Noneを返します。
if None == print('こんにちは'): print('None')
こんにちは None
補足
return Noneは自動で追加される
Pythonでは、return文がない関数定義には末尾にreturn None
が追加されます。また、return文に値が指定されていない場合もretrun値がNoneとなります。
- return文がない関数の戻り値
def sample(): print('こんにちは') if None == sample(): print('None')
こんにちは None
- return値がない関数の戻り値
def sample(): print('こんにちは') return if None == sample(): print('None')
こんにちは None
利用例
エラーが発生したかどうかを判定する
例えば、以下のような割り勘を行う関数があったとします。
正常時には①の通り計算結果を返しますが、ゼロ除算の例外発生時には②のexcept節でエラーメッセージを表示した後、None値を返します(return文は省略していますが、return None
が③の位置に追加されます)。
呼び出し元では④の通り戻り値がNoneかどうかを確認することで、正しい値が格納されているかどうかを判断することができます。
def split_the_bill(total_price, num): try: return int(total_price / num) # ① except ZeroDivisionError: # ② print("人数に0を指定することはできません") # ③ total_price = int(input('合計金額を入力してください:')) num = int(input('人数を入力してください:')) price = split_the_bill(total_price, num) if price != None: # ④ print('ひとり' + str(price) + '円です')
合計金額を入力してください:2000 人数を入力してください:0 人数に0を指定することはできません