AI資格ドリル
資格を選ぶ↓

用語比較

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は数列を出力する。戻り値はNonefib2は数列の値を含むリストを返す
returnもprintも書かない関数何も表示されない関数本体の末尾に到達した場合もNoneを返す

Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)

試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。

PR

ほかの資格を含む参考書・問題集の一覧を見る

どこで迷っているかを切り分ける

01

関数の結果を変数に入れたら、Noneになってしまう人

関数の中でprintしているだけで、returnがないことが原因です。値を受け取りたいなら、関数の中でreturnします。

02

出力を読む問題で、Noneが表示される理由が分からない人

returnのない関数は、技術的にはNoneを返しています。インタプリタは、Noneだけを書き出そうとすると通常は出力を抑制しますが、print()で包むとNoneが見えます。

03

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. 1

    関数の本体にreturnがあるかを見る

    returnがなければ、関数が終了したときにNoneが返ります。

  2. 2

    画面に出る行と、戻り値を分けて考える

    printは画面への出力、returnは呼び出し元への値です。出力に見えるものが、どちらから来たのかを追います。

  3. 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が表示される理由を説明できる

同じ資格で次に知りたいこと

よくある質問

Qprintとは?

A

値を画面に出力する関数です。出力した値は、関数の戻り値にはなりません。

Qreturnとは?

A

値を返して関数を終了する文です。式を指定しないreturnは、Noneを返します。

Qprintとreturnの違いは?

A

出す先です。printは画面に表示し、returnは関数の呼び出し元へ値を返します。

QPython3基礎試験の範囲?

A

公式の出題範囲は公式チュートリアルの章単位で、4.8「関数を定義する」は制御構造ツールの章に含まれます。出題の形式は受験前に公式の案内で確認してください。

次に見る比較

執筆: ミナト編集部(運営者情報を見る)