【未経験から始めるPython基礎⑤】None・print・return・フィボナッチのしくみ

4 min 70 views
python入門5

Python を書いていると突然出てくる「None」。
「え?これ何?」「なんで出るの?」と引っかかった経験がある人も多いはずです。

この記事では、None が出る理由から、print と return の違い、関数の基本、フィボナッチの理解まで まとめて一気に整理できます。

初心者でも“ストン”と納得できるように、やさしく丁寧に解説していきます。

Python の関数を理解する第一歩は、実はこれです。

関数には大きく分けて 「表示するだけ」と「値を返す」 の2タイプが存在します。

🔹 ① 表示するだけ(print するだけ)の関数

def hello():
    print("Hi")
  • 画面に出すだけ
  • 値は返さない
  • “見せるだけのお知らせ” のイメージ

🔹 ② 値を返す(return を使う)関数

def add(a, b):
    return a + b
  • 計算結果を他の処理に渡せる
  • 持ち帰り可能な「商品」のようなイメージ

この2つを区別できると、このあと出てくる「None」もスムーズに理解できます。

理解のコツは イメージで覚える ことです。

 print = 試食みたいなもの

店員さんが「はいどうぞ!」とその場で渡すだけ。

  • その場で表示する
  • 持ち帰るもの(値)はない

 return = お弁当

キッチンから袋に入れて渡してくれるイメージ。

  • 値を返す
  • 受け取って他の処理に使える

print は“見せる”だけ
return は“渡す”もの

これだけ覚えればもうOKです。

ここが初心者がつまずく最大ポイント。

 ✔ Python では「return がない=None を返す」というルールがある

例:

def hello():
    print("Hi")

result = hello()
print(result)

出力:

Hi
None
  • hello() は print しているだけ
  • 値を返していないので戻り値は None
  • print(result) で None が表示される

これが「Noneってなに?」の正体です。

 ✔ None = 「値が入っていません」という特別な値

よく混同されやすいので比較するとわかりやすいです。

意味
0数字の0
“”空文字列
[]空リスト
Noneそもそも値がない状態

None は「空の箱」ではなく、“箱そのものをまだ準備していない” イメージ。

 ✔ None かどうかは「is None」で判定する

if value is None:
    print("値がありません")
  • None は唯一無二の値
  • だから is None で判定するのが正しい書き方


これは「前の2つを足したら次になる」だけの数列です。

 ✔ フィボナッチ数列の例

1, 1, 2, 3, 5, 8, 13, 21…

1+1=2、1+2=3、2+3=5、3+5=8、5+8=13

自然界でもよく登場する有名な数列です。

def print_fibonacci(number):
    f1, f2 = 0, 1
    while f2 <= number:
        print(f2, end=', ')
        f1, f2 = f2, f1 + f2


func = print_fibonacci
print(func(100))                         #1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, None

ここで起きていることはこうです。

 ① func(100) を実行

  • フィボナッチ数は画面に表示される
  • でも 値を返していない(return がない)

 ② 戻り値は None

その None を print してしまうため……

 ✔ 最後に None と表示される

これで謎がすべてつながります。

 ✔ 方法① print で包まずに呼ぶ

func(100)

 ✔ 方法② 値として返す

def get_fibo(n):
    f1, f2 = 0, 1
    result = []
    while f2 <= n:
        result.append(f2)
        f1, f2 = f2, f1 + f2
    return result

print(get_fibo(100))

最後に重要ポイントだけギュッとまとめます。

● 関数には「表示するだけ」と「値を返す」の2種類がある
● print は“見せるだけ”、return は“渡すもの”
● return がない関数は自動で None を返す
● None は「値がない」という特別な値
● print(関数()) と書くと None が見えやすい
● フィボナッチは「前の2つを足す数列」

ここまで理解できれば、
Python の 関数まわりのつまずき は一気に解消します。

created by Rinker
¥3,300 (2025/11/30 16:57:23時点 楽天市場調べ-詳細)

【おまけ】Python初心者が覚えておくと便利な補足知識3選

この記事では「None」「print」「return」「関数の仕組み」などを中心に解説しましたが、
ここでは 少しだけ踏み込んだ“+αの理解” をまとめています。

Pythonをこれから学ぶ人にとって、
「知ってると後で困らない」ポイントなので、気軽に目を通してみてください。

🟡 補足①:print() で表示されるものと “戻り値” はまったく別

初心者がよく混同するポイントです。

def sample():
    print("Hello")
  • 表示 → Hello
  • 戻り値 → None(return が無いので)

「表示される=戻り値」ではない
ということだけ覚えておくと混乱が激減します。

🟡 補足②:関数の戻り値は“1つだけ”しか返せない(ただし…)

Python の関数は、実は 戻り値は1つだけ です。

しかし、次のように書くと複数返しているように見えます。

def calc(a, b):
    return a + b, a * b

x, y = calc(3, 4)

でもこれ、Python的には実は タプル(1つのまとまり)を返しているだけです。

(7, 12) という1個のタプル

これを2つに“分けて”受け取れるだけ。

関数の仕組みを理解するうえで、知っておくと後で役に立ちます。

🟡 補足③:return の瞬間、関数はそこで終了する

これも知らない人が多いポイント。

def test():
    print("A")
    return
    print("B")

出力:

A
  • return に到達した瞬間に関数は終了
  • その下のコードは実行されない

関数の流れを理解するうえで、とても重要な性質です。

🟢 おまけ部まとめ

この“補足3つ”を知っておくと、

  • printとreturnの使い分け
  • 関数の流れ
  • Pythonの基本的な動き

がさらにスムーズに理解できるようになります。

初心者のうちは、
「表示」と「戻り値」を混同しないこと
return が関数の終了を意味すること
この2つを知っているだけで、つまずく回数がぐっと減ります。

関連記事