1. はじめに|関数ってなに?なぜ使うの?
プログラムを書いていると、似たような処理を何度も使いたくなることってありませんか?
たとえば、ある計算を何度もしたり、同じ表示を何回もしたり。そんなときに便利なのが 「関数(function)」 なんです。
関数は、よく使う処理をひとまとめにしておく「箱」みたいなもの。
この箱を用意しておけば、「またこの処理を使いたいな」と思ったときに、同じコードを何度も書かずに済むんです。
🍳 料理でたとえると…
関数は「レシピ」のようなもの。
- 材料(引数)を渡すと、
- 決まった手順(関数の中身)で調理されて、
- 出来上がった料理(戻り値)が返ってくる!
こんなイメージです。
💡 なんで関数を使うの?
関数を使うと、こんなメリットがあります。
- ✅ コードが短くなってスッキリ
- ✅ 同じ処理を何度も再利用できる
- ✅ どこに何の処理があるか分かりやすくなる
プログラムが大きくなるほど、関数のありがたさが身にしみてわかってきますよ!
👶 この章で学ぶこと
この記事では、Pythonの「関数」について、
とくに【引数】と【戻り値】のしくみに注目してやさしく解説していきます。
「関数ってよく聞くけど、よくわからない…」という人も、サンプルコードと一緒にゆっくり学べるので安心してくださいね!
2. 関数の基本|組み込み関数とユーザー定義関数の違い
Pythonには、すでに用意されている便利な関数と、自分で作れるオリジナルの関数があります。この2つの違いをしっかり理解しておくと、プログラミングがグッとわかりやすくなりますよ!
🔧 組み込み関数とは?
組み込み関数(built-in function)は、Pythonに最初から用意されている関数のこと。
たとえば…
print("こんにちは!")
これは「print()」という組み込み関数を使って、文字を表示しています。他にも、
input():キーボードから入力を受け取るlen():文字列やリストの長さを調べるint():文字列を整数に変換する
などなど、よく使われる関数がたくさんあります。
これらは自分で定義しなくても、そのまま使えるのがポイントです!
🧑🍳 ユーザー定義関数とは?
一方、ユーザー定義関数は、自分で名前や中身を決めて作るオリジナルの関数です。
作り方はとってもシンプル。キーワード def を使って、以下のように書きます:
def say_hello():
print("こんにちは!")
この関数は「say_hello()」と呼ぶだけで、あいさつを表示してくれます。
say_hello()
# 出力: こんにちは!
関数を定義することで、あとから何度でも呼び出して使えるようになります。
✅ 組み込み関数とユーザー定義関数の違いまとめ
| 項目 | 組み込み関数 | ユーザー定義関数 |
|---|---|---|
| 用意されている場所 | Python本体に最初から | 自分で定義する |
| 例 | print(), input(), len() | say_hello(), get_average() など |
| 使い方 | そのまま使える | def で定義してから使う |

初心者のうちは「組み込み関数」を使いながら、「自分でも関数を作ってみよう!」という気持ちで練習してみると、自然に身についていきますよ!
3. 引数と戻り値とは?|データの流れを図解で理解
関数を使うときにとても大事なのが「引数」と「戻り値(リターン値)」です。
この2つをおさえておくと、「関数の中にどうやってデータを渡して、どうやって結果を受け取るか」がスッキリわかるようになります!
📦 引数(ひきすう)ってなに?
**引数(argument)**は、「関数に渡すデータ」のことです。
たとえば、次のような関数があるとします:
def greet(name):
print("こんにちは、" + name + "さん!")
この name の部分が「引数」です。
greet("太郎")
# 出力:こんにちは、太郎さん!
このように、関数にデータを渡すことで、いろんな値に対応できるようになります。
🔁 複数の引数もOK!
引数は1つじゃなくても大丈夫。カンマで区切って複数指定できます:
def add(a, b):
print(a + b)
add(3, 5)
# 出力:8
🎁 戻り値(リターンち)ってなに?
**戻り値(return value)**は、関数が「計算した結果などを外に返す値」のことです。
たとえば、さっきの add 関数をちょっと書きかえて、結果を返すようにしてみます:
def add(a, b):
return a + b
result = add(3, 5)
print(result)
# 出力:8
ここで return は、「a + b の計算結果を返すよ」という意味です。
result には「8」という戻り値が入っていて、あとから使えるようになります。
📊 引数と戻り値の流れを図でイメージ!

↓(引数)
呼び出し元 → 関数 → 結果(戻り値)→ 呼び出し元
- 引数:関数にデータを渡す入り口
- 戻り値:関数から結果を受け取る出口
この流れをイメージすると、関数が「データの変換工場」みたいに見えてきますね!
🚫 return がないとどうなるの?
もし関数に return がなかったら、戻り値は「None(ナン)」になります。
def hello():
print("Hello!")
x = hello()
print(x)
# 出力:Hello!
# None ← 何も返していないので
💬 まとめ
- 引数は「関数に渡すデータ」
- 戻り値は「関数から返される結果」
returnを使えば、結果をあとで使える!
4. サンプルプログラムで学ぼう|平均点を計算して表示する関数
ここまで「関数ってなに?」「引数と戻り値ってどう使うの?」という基礎を学びましたね。
ではいよいよ、実際に Pythonで関数を使ったプログラム を作ってみましょう!
🎯 作るプログラムの目的
英語と数学の点数を入力してもらい、
- 平均点を計算する
- 計算結果を表示する
という流れを3つの関数で分けて実装してみます。
🧱 全体の流れと関数の役割
| 関数名 | 内容 | 引数 | 戻り値 |
|---|---|---|---|
usage() | 最初に説明を表示する | なし | なし |
get_average() | 平均を計算して返す | あり | あり |
display() | 平均点を表示する | あり | なし |
🧪 実際のサンプルコード
# 説明を表示する関数
def usage():
print("英語と数学の点数を入力すると平均点を表示します。")
# 平均を計算して返す関数
def get_average(e, m):
return (e + m) / 2
# 結果を表示する関数
def display(average):
print(f"あなたの平均点は {average} 点です。")
# プログラムの実行部分
usage()
english = int(input("英語の点数を入力してください:"))
math = int(input("数学の点数を入力してください:"))
avg = get_average(english, math)
display(avg)
💡 ポイント解説
usage():最初に説明だけを表示する「引数なし・戻り値なし」の関数。get_average(e, m):2つの点数(英語・数学)を受け取って、平均を計算して「戻り値として返す」関数。display(average):計算された平均点を表示する「引数あり・戻り値なし」の関数。
📌 実行例
英語と数学の点数を入力すると平均点を表示します。
英語の点数を入力してください:70
数学の点数を入力してください:80
あなたの平均点は 75.0 点です。
✨ このプログラムで学べること
- 関数の作り方
- 引数と戻り値の使い方
input()とint()の組み合わせで数値を受け取る方法- コードを関数で整理すると読みやすくなること!
5. 関数を使うメリット|コードがぐっと読みやすくなる!
関数の書き方や使い方がわかってくると、
「関数ってわざわざ使わなくても、全部まとめて書けばよくない?」
と思う人もいるかもしれません。
でも実は、関数を使うとプログラムがすごくスッキリして、読みやすくなるんです!
🧹 ① コードが整理されて見やすくなる
たとえば、関数を使わずに全部まとめて書いたら、こうなります:
print("英語と数学の点数を入力すると平均点を表示します。")
e = int(input("英語の点数を入力してください:"))
m = int(input("数学の点数を入力してください:"))
avg = (e + m) / 2
print(f"あなたの平均点は {avg} 点です。")
一見シンプルですが、処理がすべてバラバラに書かれていて、
「どこで何をしてるのか」がわかりにくくなってしまいます。
🧩 ② 処理のまとまりが見えるようになる
関数を使うと、処理ごとに「名前」がつくので、プログラムの流れがひと目で分かります。
usage()
english = int(input("英語の点数を入力してください:"))
math = int(input("数学の点数を入力してください:"))
avg = get_average(english, math)
display(avg)
どうでしょう?
関数名を見るだけで「何をしているのか」がなんとなく伝わってきますよね!
🔁 ③ 同じ処理を何度も使える
関数は1回作っておけば、何度でも使い回せるのも大きなポイントです。
たとえば、「3科目の平均点を出す」ように変更したいときも、get_average() 関数をちょっとだけ直せば再利用できます。
🔧 ④ プログラムの修正がラクになる
もし「計算方法を変えたい」となったとき、関数を使っていればその関数だけを修正すればOK!
関数を使っていないと、同じ処理が何カ所にも書かれていて、全部探して直さないといけません…。
👨🏫 関数は“読み手への思いやり”
コードを書くときは、自分だけでなく「これから読む人」のことも考えることが大事です。
関数は、そんな“読み手へのやさしさ”を形にしたものでもあるんですね。
✅ まとめ
関数を使うと…
- ✅ コードの意味がわかりやすくなる
- ✅ 何度も同じ処理を使い回せる
- ✅ 修正もしやすくて保守性アップ!
6. まとめ|関数のしくみをマスターしよう
ここまでで、Pythonにおける関数の基本から、引数・戻り値、実際の使い方までを一通り学んできました。
「関数って難しそう…」と思っていた人も、ちょっと身近に感じられるようになったのではないでしょうか?
🎓 この記事のふり返り
✅ 関数とは?
→ よく使う処理を「ひとまとめ」にして、あとから何度でも使える便利な仕組み。
✅ 組み込み関数とユーザー定義関数の違い
→ print() などは最初からある関数、自分で作るのがユーザー定義関数(defを使って定義)。
✅ 引数と戻り値
→ データを「渡す」「返す」ことで、関数に情報を入れて結果を受け取ることができる!
✅ 実践例:平均点を計算するプログラム
→ 関数を使えば、コードが整理されてわかりやすくなる!
📘 これからどう活かす?
関数はPythonだけでなく、どんなプログラミング言語でも超重要な要素です。
関数の考え方に慣れておくことで、これから学ぶ「クラス」や「モジュール」など、もっと複雑な仕組みもスムーズに理解できるようになります。
👉 次に学ぶおすすめステップ
「引数をもっと柔軟にしたいな」と思ったら、次はこんな内容がおすすめです:
- デフォルト引数(初期値付き)
- 可変長引数(
*argsや**kwargs) - ラムダ式(無名関数)

関数を使いこなせるようになると、あなたのコードはもっとスッキリ、もっとパワフルになっていきます!
ちょっとずつでいいので、自分のペースで練習していきましょう✨
よくある質問(Q&A)
- Q関数の引数って、必ず使わなきゃいけないの?
- A
いいえ、引数は必要なときだけ使います。
何も受け取らない関数も作れますし、必要なら複数の引数を渡すこともできます。
例:def hello():←引数なしでもOK!
- Q関数の戻り値が「None」って出たけど、なぜ?
- A
return文がない関数は、自動的に「None」を返すからです。
関数から何も返していない場合、Pythonは「何もないよ=None」とみなします。
- Q引数に文字列を入れたらエラーになりました…
- A
関数が数値を想定している場合、文字列は使えません。
たとえばint(input())を忘れてinput()のままにすると、”80″(文字列)になってしまいます。型変換に注意しましょう!







※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。