用語比較
printとreturnの違い|画面に出すか、呼び出し元へ値を返すか(Python3基礎)
printとreturnは、どちらも関数の結果を外に出すように見えますが、出す先が違います。print()は値を画面に表示する関数で、return文は関数を終了して呼び出し元へ値を返す文です。見せるならprint、受け取るならreturnと覚えると、出力を読む問題で迷いません。
Python公式チュートリアル4.8は、同じフィボナッチ数列を、fibでは出力する関数、fib2では数列の値を含むリストを返す関数として書いています。fibの戻り値はNoneなので、print(fib(0))とするとNoneが表示されます。この動きが、2つの違いを理解する近道です。
Python3エンジニア認定基礎試験は、公式チュートリアルの内容を章ごとの出題率で出題する形で、4.8「関数を定義する」を含む制御構造ツールの章も範囲です。この記事では、チュートリアルの例を使って、出力と戻り値の読み分けを確認します。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。Python3エンジニア認定基礎試験の一次情報確認日: 2026-09-18。
結論
print()
値を画面に出力する。関数の戻り値にはならない。
return
値を返して関数を終了する。返った値は、呼び出し元が変数に入れたり、別の計算に使ったりできる。式を指定しないreturnはNoneを返す。
違いを表で確認
| 比較軸 | print() | return |
|---|---|---|
| 役割 | 値を画面に出力する | 値を返して関数を終了する |
| 呼び出し元に渡る値 | 渡らない。print()を使った関数がreturnを持たなければ、戻り値はNone | 渡る。呼び出し元が受け取って使える |
| 関数の実行 | 表示したあとも、関数は続きを実行する | その時点で関数が終了する |
| チュートリアルの例 | fibは数列を出力する。戻り値はNone | fib2は数列の値を含むリストを返す |
| returnもprintも書かない関数 | 何も表示されない | 関数本体の末尾に到達した場合もNoneを返す |
Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)
試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。
どこで迷っているかを切り分ける
関数の結果を変数に入れたら、Noneになってしまう人
関数の中でprintしているだけで、returnがないことが原因です。値を受け取りたいなら、関数の中でreturnします。
出力を読む問題で、Noneが表示される理由が分からない人
returnのない関数は、技術的にはNoneを返しています。インタプリタは、Noneだけを書き出そうとすると通常は出力を抑制しますが、print()で包むとNoneが見えます。
returnの後に書いた行が実行されない理由が分からない人
return文は値を返して関数を終了するので、その後の行には進みません。
具体例で使い分ける
例 1
チュートリアルのfibとfib2を読み比べる
公式チュートリアル4.8の例です。fib(n)は、n未満のフィボナッチ数列を出力する関数で、return文を持ちません。fib2(n)は、n未満のフィボナッチ数列を含むリストを返す関数で、末尾でreturn resultとします。
- fibを呼ぶと、数列が画面に出ます。ただし値は返らないので、結果を別の計算には使えません。
- fib(0)をインタプリタで呼んでも、何も表示されません。fibの戻り値はNoneで、Noneだけを書き出そうとすると、インタプリタは通常出力を抑制するためです。
- print(fib(0))とすると、Noneが表示されます。fib2の戻り値は変数に入れたり、別の関数に渡したりできるリストなので、後続の処理で使えます。
結論: 画面に出す関数と、値を返す関数は別のものです。値を後で使いたいときはreturn、人に見せたいだけならprintを選びます。
問題文から答えを選ぶ手順
- 1
関数の本体にreturnがあるかを見る
returnがなければ、関数が終了したときにNoneが返ります。
- 2
画面に出る行と、戻り値を分けて考える
printは画面への出力、returnは呼び出し元への値です。出力に見えるものが、どちらから来たのかを追います。
- 3
print()の中で関数を呼んでいないか確かめる
print(関数())の形は、戻り値を表示します。returnのない関数なら、Noneが表示されます。
試験での見分け方
- 1print()は値を画面に出力し、戻り値にはならない。
- 2return文は値を返して関数を終了する。式を指定しないreturnはNoneを返す。
- 3return文を持たない関数は、関数本体の末尾に到達するとNoneを返す。
誤答しやすい選択肢
printした値が、関数の戻り値になると考える
修正: printは画面への出力です。戻り値を受け取りたいなら、returnを使います。
returnを書かない関数は、何も返さないと考える
修正: チュートリアルは、return文を持たない関数もNoneという値を返していると説明しています。
fib(0)で何も表示されないのは、値がないからだと考える
修正: 値はNoneです。Noneだけを書き出そうとすると、インタプリタは通常出力を抑制するため、何も見えないだけです。
確認問題
Q1return文を持たない関数を呼んだとき、戻り値は何か?
答え: None
return文を持たない関数も、Noneという値を返しています。関数本体の末尾に到達した場合もNoneを返します。
Q2式を指定しないreturnは、何を返すか?
答え: None
チュートリアル4.8は、式を指定しないreturnはNoneを返すと説明しています。
Q3チュートリアルのfibが数列を出力する関数であるのに対し、fib2はどのような関数か?
答え: 数列の値を含むリストを返す関数
fib2は数列を出力せず、n未満のフィボナッチ数列を含むリストを返します。
到達チェック
- printが画面への出力で、returnが呼び出し元への値であることを言い分けられる
- return文のない関数がNoneを返すことを説明できる
- print(fib(0))でNoneが表示される理由を説明できる
関連ページで確認する
同じ資格で次に知りたいこと
- globalとnonlocalの違い|再束縛する先のスコープ(Python3基礎)
globalとnonlocalの違いを、代入が届く先(モジュールの変数か、外側の関数の変数か)で整理します。Python公式チュートリアル9.2の記述、出力を読む例、確認問題つき。
- デフォルト引数に空リストを書く場合とNoneを書く場合の違い|呼び出しをまたいで値が残るか(Python3基礎)
def f(a, L=[]) と def f(a, L=None) の違いを、デフォルト値が評価される回数で整理します。Python公式チュートリアル4.9.1の例で f(1)・f(2)・f(3) の出力が変わる理由と、確認問題つき。
- f文字列とformatメソッドの違い(書式化の書き方とフォーマット指定子)
f文字列(フォーマット済み文字列リテラル)とstr.format()メソッドの違いを、公式チュートリアル7.1の例とあわせて解説。Python 3 エンジニア認定基礎試験の第7章で問われる書き方の区別と確認問題つきです。
よくある質問
Qprintとは?
値を画面に出力する関数です。出力した値は、関数の戻り値にはなりません。
Qreturnとは?
値を返して関数を終了する文です。式を指定しないreturnは、Noneを返します。
Qprintとreturnの違いは?
出す先です。printは画面に表示し、returnは関数の呼び出し元へ値を返します。
QPython3基礎試験の範囲?
公式の出題範囲は公式チュートリアルの章単位で、4.8「関数を定義する」は制御構造ツールの章に含まれます。出題の形式は受験前に公式の案内で確認してください。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: ミナト編集部(運営者情報を見る)
