第11章 ユーザー定義関数

ユーザー定義関数

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

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

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 でつなぐ

コメント