まず結論
print は画面に表示するためのものです。
return は関数の結果として値を返すためのものです。
def make_message():
return "こんにちは"
message = make_message()
print(message)
このコードでは、make_message() が "こんにちは" を返し、それを print() で表示しています。
こんなときに読む記事です
次のようなところで止まった人向けです。
- 関数の中で
print()しているのに結果が使えない returnが何のためにあるのか分からないNoneが返ってきて困っている
print と return は似て見えますが、役割はかなり違います。
printは画面に見せる
print() は、値を画面に表示します。
def say_hello():
print("こんにちは")
result = say_hello()
print(result)
この場合、say_hello() は画面に "こんにちは" を表示します。
ただし、関数の結果として値を返していないため、result には None が入ります。
returnは値を渡す
return は、関数を呼んだ場所へ値を返します。
def make_hello():
return "こんにちは"
result = make_hello()
print(result)
この場合、result には "こんにちは" が入ります。
あとで変数に入れたり、別の計算に使ったりできます。
よくあるつまずき
関数の中で print() しただけでは、その値をあとから使えるとは限りません。
def add(a, b):
print(a + b)
total = add(2, 3)
print(total)
5 は表示されますが、total には None が入ります。
結果を使いたいならreturn
計算結果をあとで使いたいなら、return にします。
def add(a, b):
return a + b
total = add(2, 3)
print(total * 10)
この場合、total には 5 が入るので、さらに計算できます。
読み方のコツ
迷ったら、次のように分けて考えます。
- 画面に見せたいだけなら
print - 関数の外で使いたいなら
return
最初はこの2つの使い分けだけで十分です。
3行まとめ
- printは画面に文字や値を表示するためのもの。
- returnは関数の呼び出し元へ値を返すためのもの。
- 関数の結果をあとで使いたいならreturnを使う。