Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】I Confused print and return for Months. Here’s What Finally Clicked

2025年09月18日に「Medium」が公開したITニュース「I Confused print and return for Months. Here’s What Finally Clicked」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Pythonの関数における`print`は画面に値を表示する機能、`return`は関数の処理結果を呼び出し元に返す機能だ。この両者の違いを理解することで、関数をより意図通りに活用できるようになる。

ITニュース解説

システムエンジニアを目指す上で、プログラミング学習の初期段階でしばしば混乱を招く概念に、printreturnがある。Pythonをはじめとする多くのプログラミング言語に存在するこれら二つの機能は、一見すると似たような役割を持つように見えるかもしれないが、実際にはプログラム内部での動作原理や目的が大きく異なる。この違いを明確に理解することは、単にプログラムが動くというレベルを超え、より効率的で再利用性の高い、洗練されたコードを書くための重要なステップとなる。

まず、printについて考えてみよう。printは、主にプログラムの実行中に、特定の情報を画面(コンソール)に表示するための命令である。これは、プログラマーがプログラムの動作状況を確認したり、計算の途中経過をデバッグしたり、あるいはユーザーに何らかのメッセージを伝えたりする目的で利用される。例えば、ある変数の値が期待通りに変化しているかを確認したい場合や、「処理が完了しました」といったメッセージを表示したい場合にprintを使用する。printで表示された値は、あくまで画面に「表示」されるだけであり、その値がプログラムの他の部分で直接「利用」できるわけではない。つまり、printはプログラムの「外部」に向けて情報を提示する手段であり、プログラム内部のデータの流れや処理には直接関与しないのだ。

次に、returnについて掘り下げてみよう。returnは、主に「関数」の中で使われる命令で、関数が処理した結果の「値」を、その関数を呼び出した元の場所(呼び出し元)に「返す」役割を担う。関数は、特定の処理をひとまとまりにした部品のようなものであり、何かを入力として受け取り、処理を行い、その結果として一つの値を出力することが多い。この「出力」がreturnによって行われる。例えば、二つの数値を足し算する関数を考えた場合、その関数は二つの数値を受け取り、足し算を実行し、その計算結果をreturnによって呼び出し元に返す。呼び出し元は、この返された値を受け取り、それを別の変数に代入したり、さらに別の計算に使ったり、別の関数の引数として渡したりと、プログラム内部で自由に利用することができる。returnが実行されると、その時点で関数の処理は終了し、呼び出し元に制御が戻る点も重要だ。もし関数内にreturn文が一つもない場合、Pythonではその関数は暗黙的にNoneという特殊な値を返すことになる。

この二つの決定的な違いは、「見える化」と「データの引き渡し」にあると言えるだろう。printは、プログラムの内部状態を人間が確認できるように「見える化」するものであり、プログラム自身は表示された値を「利用」できない。一方、returnは、関数が処理した結果を、プログラムの別の部分に「データの引き渡し」を行うものであり、返された値はプログラム内部で再利用され、次の処理へとつながっていく。

なぜreturnがこれほどまでに重要なのか。それは、現代のプログラムが、複数の小さな部品(関数)が互いに連携し合って、一つの大きな処理を完成させる構造になっているからだ。関数がreturnによって値を返すことで、それぞれの関数は独立した計算やデータ加工の単位として機能し、その結果を次の関数へとスムーズに渡すことができる。これにより、プログラム全体の処理がモジュール化され、コードの再利用性が高まり、可読性が向上し、保守も容易になる。もし関数がreturnを持たず、ただprintで結果を表示するだけだったとしたら、その計算結果を別の関数で利用することはできない。それぞれの関数は孤立した存在となり、互いにデータをやり取りできず、プログラム全体のデータフローを構築することが極めて困難になるだろう。記事が言及する「サイレントな関数」が「強力なツール」に変わる、とはまさにこのことを指す。returnによって値が返される関数は、画面に何も表示しなくとも(サイレントでも)、その結果をプログラムの他の部分に提供し、連鎖的な処理や複雑なロジックを構築するための強力な構成要素となるのだ。

printはデバッグや情報表示に不可欠なツールであり、returnは関数の連携とプログラム内部のデータフローを司る中核的なメカニズムである。これら二つの役割と目的の違いを明確に理解し、適切に使い分けることは、システムエンジニアとしてより高品質なプログラムを書くための基礎であり、今後の学習とキャリアにおいて非常に役立つ知見となるだろう。

関連コンテンツ