Pythonのreturn
とprint
は、初心者にとって混乱を招くことがあります。これらは似ているように見えますが、実際には全く異なる目的で使用されます。
print
とreturn
の基本的な違い
print
は値をコンソールに表示するための関数です。print
を使用して値を表示した後、その値は再利用できません。
一方、return
は関数から値を返し、関数を終了するために使用されます。return
を使用して関数から値を返すと、その値は後で再利用することができます。
print
とreturn
の使い分け
以下に、print
とreturn
の使い分けについての例を示します。
def print_42():
print(42)
def return_42():
return 42
print(print_42())
print("——————-")
print(return_42())
このコードを実行すると、print_42()
は42
とNone
を出力します。一方、return_42()
は42
を返します。
print_42()
の型を確認するとNoneType
であることがわかります。これは、print_42()
関数が何も返さないことを意味します。
したがって、print_42()
をreturn_42()
に読み込ませるとTypeError
が発生します。
def print_42():
print(42)
def return_42():
calc = print_42() + 42
return calc
print(print_42())
print("——————-")
print(return_42())
このコードを実行すると、TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
というエラーが発生します。
以上のことから、結果を表示させる目的ではなく、他の関数に値を渡したい場合は、print()
ではなくreturn
を利用すべきであることがわかります。
まとめ
Pythonのreturn
とprint
は、見た目は同じように見えますが、結果として返されるデータの型が異なります。プログラミングでは、データの「型」を適切に考えないとエラーが発生することがよくあります。
大雑把な考え方としては、結果を単純に表示させるだけならprint()
関数を、結果を利用してさらに何らかの処理を行いたい場合はreturn
文を使用すると良いでしょう。しかし、結果として表示される情報や返ってくる情報がどのような「型」なのかを意識することが重要です。