まず結論
None は、「値がない」ことを表す特別な値です。
result = None
print(result)
これはエラーではありません。
result には「値がない」という意味の None が入っています。
こんなときに読む記事です
次のような場面で None を見て困った人向けです。
- 関数を呼んだら結果が
Noneになった print()したらNoneと表示された- 空文字
""や0と何が違うのか分からない
None は「失敗」そのものではありません。Pythonが「ここには返す値がありません」と示していることがあります。
どこで出てくる?
関数が何も返さないときによく出てきます。
def say_hello():
print("こんにちは")
result = say_hello()
print(result)
say_hello() は画面に表示していますが、return で値を返していません。
そのため、result には None が入ります。
printとreturnは別もの
print() は画面に表示するだけです。
関数の結果として値を返したいなら、return を使います。
def make_message():
return "こんにちは"
result = make_message()
print(result)
この場合、result には "こんにちは" が入ります。
空文字や0とは違う
None、空文字、0 は別のものです。
None
""
0
どれも「なさそう」に見えますが、意味が違います。
None: 値がない"": 文字が0個の文字列0: 数字のゼロ
確認するとき
None かどうかを調べるときは、よく is None を使います。
if result is None:
print("値がありません")
result == None と書いても動くことはありますが、Pythonでは is None がよく使われます。
3行まとめ
- Noneは値がないことを表す特別な値。
- 何もreturnしない関数はNoneを返す。
- 空文字や0とは別のもの。