5.4 ユーザー定義関数

5.4 ユーザー定義関数

👉 **「ひとまとまりの処理に名前をつけたもの」**です。

いちばん簡単な例

def hello():
print(“こんにちは”)

これは
def → 関数を作る合図
hello → 関数の名前
() → 引数(今はなし)
: → ここから中身
インデント部分 → 実行される処理

実行するには?

hello()

👉 これで中の処理が実行されます。
関数は「ボタン」です。

helloボタン
↓ 押す(hello())
こんにちは と表示

🔹 引数(入力)を使う関数
def hello(name):
print(f”こんにちは、{name}さん”)

実行:hello(“太郎”)

結果:こんにちは、太郎さん

👉 name が 入力(引数)

🔹 戻り値(return)
def add(a, b):
return a + b

使い方:
result = add(3, 5)
print(result)

出力:8

👉 return は「結果を返す」

まとめ

def: 関数を作る
引数: 入力
return: 結果を返す
関数: まとめた処理

🎯 なぜ関数を使う?

✔ 同じ処理を何回も使える
✔ コードが整理される
✔ バグが減る
✔ 読みやすくなる

🌱 クラスとの違い(超簡単)

関数 → 単体の処理
クラス → データ+処理をまとめる仕組み

ユーザー定義関数

① ユーザー定義関数とは?

一言でいうと、自分で作る関数です。

def greet(name):
print(f"こんにちは、{name}さん")

使うとき:

greet(“田村”)

👉 よく使う処理を 名前付きでまとめる ためのもの。

② 基本的な関数の形

def 関数名(引数1, 引数2):
処理
return 戻り値

例:

def add(a, b):
    return a + b

x = add(3, 5)
print(x)

③ 変数の有効範囲(スコープ)

超重要ポイントです ⚠️

def func():
    x = 10
    print(x)func()
print(x) # エラー!

ルール

関数の中の変数 → ローカル変数

関数の外 → グローバル変数

関数の外では中の変数は見えません。

グローバル変数を読むのはOK

x = 5

def func():
print(x) # OK

書き換えるときは注意

x = 5

def func():
global x
x = 10

👉 ただし あまり使わないのが正解
(バグの元)

④ 引数にデフォルト値を設定

def greet(name="ゲスト"):
    print(f"こんにちは、{name}さん")

greet()
greet("田村")

複数ある場合


def power(x, n=2):
    return x ** n

👉 「よく使う値」を省略できて便利。

⑤ 引数の順番ルール

def func(a, b=10, c=20):

デフォルトなし → 先

デフォルトあり → 後

❌ これはダメ:

def func(a=10, b):

⑥ 関数を別ファイル化する(ここが実務っぽい)

ファイル構成例

project/
├─ main.py
└─ utils.py

utils.py

def add(a, b):
return a + b

main.py

import utils
print(utils.add(3, 5))

または:

from utils import add
print(add(3, 5))

⑦ なぜ別ファイルにするのか?

見通しが良くなる
再利用できる
Notebook でも使える
大きなプログラムに自然に拡張できる

👉 src フォルダを見かける理由も、ここにつながります。

⑧ よくある初心者あるある(大事)

❌ Notebook の別セルに書いた関数が消えた?

→ カーネル再起動している

❌ 別ファイルが import できない?

→ カレントディレクトリ問題

(ここも必要なら整理できます)

まとめ(ここだけ覚えればOK)

ユーザー定義関数 = 自分で作る処理の塊
def で定義
変数は関数の中が基本
デフォルト引数で使いやすく
大きくなったら別ファイルへ
import でつなぐ

コメント