Pythonを学び始めたころ、関数の挙動が思っていたのと違って戸惑ったことがありました。
特に print() と return の違いが曖昧なままだと、「ちゃんと表示されているのに None が出てきた!」と驚くことがあります。
この記事では、関数の戻り値がないときにどうなるかを具体的なコード例をもとに整理しておきます。
例:printとreturnの違いを見てみよう
以下のコードをご覧ください。
def show_total(price)
tax = 5
print("合計金額:", price + tax)
total_price = 100
print(show_total(total_price))
実行結果
合計金額: 105
None
「表示はされてるのに、なぜ None が出てくるの?」と感じた方は、以下の解説をチェックしてみましょう。
解説:printは表示、returnは値を返す
このコードでは、次のような流れで処理が行われています。
-
show_total(total_price)を呼び出すと、関数内のprint()によって"合計金額: 105"が表示される - しかし、
show_total()関数にはreturnがないため、戻り値はNone -
print(show_total(total_price))によってNoneも表示されてしまう
つまり:
-
print()は「画面に表示」するだけ -
returnを使わない限り、関数は自動的にNoneを返す
修正例:値を返すようにするには?
def calculate_total(price):
tax = 5
return price + tax
total_price = 100
print("合計金額:", calculate_total(total_price))
実行結果
合計金額: 105
このように、関数に return を使うと戻り値が返されるので、None は表示されません。
他の例:戻り値がない関数はすべてNoneを返す
def greet(name):
print(f"{name}さん、こんにちは!")
message = greet("田中")
print("関数の戻り値:", message)
実行結果
田中さん、こんにちは!
関数の戻り値: None
このように、return を書かない関数は、明示的に何も返していないように見えても、内部的には None を返しています。
✅ まとめ:printとreturnの違いを押さえよう
| 項目 | 説明 |
|---|---|
print() |
コンソールに表示するだけ(戻り値なし) |
return |
関数の「戻り値」を指定する |
| 戻り値省略 |
None が返される |
関数の戻り値に関しては、動かしてみるまでは意外と実感が湧きにくい部分でした。
今回のような「表示されるけど None が返る」といった違和感を何度か経験して、ようやく print() と return の役割の違いが腑に落ちてきたように思います。