【脱・丸暗記】Python関数の作り方・呼び出し方を図解で徹底解説(def、引数、returnの基本)
【脱・丸暗記】Python関数の作り方・呼び出し方を図解で徹底解説(`def`、引数、`return`の基本)
「関数(function)って、何のために使うんだろう?」「`return`って書かないとどうなるの?」「引数と戻り値の違いがわからない」
**関数**は、Pythonで効率的なコードを書くための**最重要の基本要素**ですが、初心者にとっては最もつまずきやすい概念の一つです。
この記事では、**「関数=自動販売機」**というイメージを使って、抽象的な関数の仕組みを**図解で完全攻略**します。
読み終えるころには、**`def`、引数(ひきすう)、戻り値(もどりち)**という3つの要素の役割が明確になり、今日から自分で関数を作成・活用できるようになります。
📌 なぜ関数を理解するとPython学習が加速するのか?(関数の役割)
初心者は「関数を覚えるのが大変」と感じがちですが、関数はあなたを助ける強力なツールです。関数を使う主な理由は2つあります。
1. 役割1:同じ処理を何度も書く手間をなくす(コードの再利用)
複雑な計算や、データベースへの接続など、**何度も使う一連の処理**をひとまとめにして名前を付けておけば、必要なときに**その名前を呼び出すだけ**で実行できます。
2. 役割2:コード全体を分かりやすくする(可読性の向上)
100行、200行と長くなるコードを、処理ごとに**関数に分けてブロック化**することで、コードを読むときに「この部分は〇〇の計算をしている」と一目で理解できるようになります。
💡 図解で理解!Python関数を構成する3つの基本要素
関数は、次のたった**3つの要素**で成り立っています。この3つの役割さえ理解すれば、関数はマスターしたも同然です。
1. `def`:関数の設計図を描き、名前をつける
関数を定義し、Pythonに「これからこういう処理をする塊を作りますよ」と教えるための宣言キーワードです。
def 関数名(引数):
2. **引数(ひきすう)**:関数に渡す「材料」
関数が処理を実行するために**外部から受け取るデータ**のことです。自動販売機でいう「お金」や「ボタン選択」に当たります。
3. **戻り値(もどりち)**:関数の「結果」を返す**`return`**
関数が処理を終えた後に、**その結果を呼び出し元へ返すデータ**のことです。自動販売機でいう「ジュース」や「お釣り」に当たります。`return`キーワードを使って指定します。
この3要素の関係を、最もイメージしやすい**「自動販売機」**の例で見てみましょう。
🛠️ Python関数の「作り方」:基本の3ステップ
実際にPythonで関数を作る手順は非常にシンプルです。
ステップ1: `def` で関数を定義する
`def`キーワードと、半角スペースの後に**関数名**を記述し、最後に**`:`(コロン)**をつけます。
def greet():
# ここに関数の処理を書く
print("こんにちは!")
※関数名は、何をしているか分かりやすい名前にしましょう(例: `calculate_tax` など)。
ステップ2: 処理内容を**インデント**して記述する
`def`の次の行から、**字下げ(インデント)**をして実行したい処理を書きます。Pythonではこのインデントが非常に重要で、インデントされた部分が**「関数のボディ」**と認識されます。
ステップ3: 必要に応じて `return` で結果を返す
関数内で計算した結果などを、呼び出し元で使いたい場合は**`return`**キーワードを使って値を返します。
def add(a, b):
result = a + b
return result # 計算結果を返す
⚙️ Python関数の「使い方」:引数と戻り値の徹底解説
作った関数を実行するには、**関数名**と**`()`(括弧)**を記述します。
1. 引数を渡して関数を呼び出す(呼び出し方)
引数が必要な関数の場合、呼び出す際に`()`の中に必要な**材料(値)**を入れます。
def multiply(x, y):
return x * y
# 関数を呼び出し、引数として 5 と 10 を渡す
answer = multiply(5, 10)
print(answer) # 50が出力される
2. 戻り値(return)の役割を理解する
初心者が最も混乱するのがこの**戻り値**です。`return`は、単に画面に表示する`print()`とは異なり、**関数の実行結果を呼び出し元の変数に代入**できるようにする役割があります。
💡 `return`がない関数 (`None`が返る)
`return`がない関数は、**処理を実行するだけ**で、呼び出し元には何も**結果を返しません**。Pythonでは、このとき自動的に特別な値である**`None`**を返します。
def greet_only():
print("Hello!") # 処理は実行されるが、値を返さない
result = greet_only()
print(result) # None が出力される
💡 `return`がある関数 (結果を代入できる)
`return`がある関数は、その結果を変数に格納したり、別の計算に利用したりできます。これが関数を使う**最大のメリット**です。
❓ 関数を使う上での初心者の疑問とエラー対策
疑問1:`print`と`return`、どう使い分けるの?
* **`print()`**: デバッグ(動作確認)のためや、**最終的な結果を画面に出力**したいときに使います。 * **`return`**: 関数内で得た**結果を、他の場所(呼び出し元)で再利用したい**ときに使います。
基本的には、**処理結果を返すときは`return`**、**画面に表示するだけなら`print`**と覚えておけばOKです。
疑問2:エラー「関数が見つからない」(NameError)
NameError: name 'my_func' is not defined
- **原因**: 関数を`def`で**定義する前に**呼び出しているか、関数名のスペルミスをしている。
- **対策**: **必ず`def`の定義を済ませてから**、関数を呼び出すようにコードの順番を確認しましょう。
疑問3:エラー「引数が足りない」(TypeError)
TypeError: my_func() missing 1 required positional argument: 'y'
- **原因**: 関数が2つの引数を要求しているのに、呼び出し時に1つしか渡していない。
- **対策**: 定義時に指定した引数の数と、呼び出し時に渡している値の数が一致しているか確認しましょう。
✅ まとめ:関数を理解すればPythonのレベルが一段上がる
関数をマスターすることは、初心者から一歩抜け出し、**効率的なプログラミング**を始めるための鍵です。
- 関数の基本は、**`def`(設計)**、**引数(材料)**、**`return`(結果)**の3要素。
- 関数は**同じ処理を再利用**し、コードを**読みやすく**するために使う。
- **`return`**は結果を呼び出し元に返し、その値を別の計算や変数代入に使えるようにする。
まずは小さな関数をたくさん作ってみて、引数と`return`を使って値をやり取りする練習を繰り返しましょう。小さな成功体験が、あなたの学習を加速させます。
