ChatGPTで学ぶPython関数の応用入門

スキル・キャリア

Pythonの関数を一通り学んだけれど、もう少し柔軟な使い方がしたい。
そんなあなたに向けて、この記事では「関数の応用」についてわかりやすく解説します。

関数のスコープ(変数の有効範囲)、デフォルト引数、関数のネストなどを、Google ColabとChatGPTを活用しながら丁寧に紹介していきます。

▶ 前回の記事はこちら:
👉 ChatGPTで学ぶPython関数の基本入門


スコープ(変数の有効範囲)を理解しよう

Pythonでは、変数がどこで使えるかが「スコープ(有効範囲)」によって決まります。
スコープには大きく分けて2種類あります。

  • グローバルスコープ:関数の外で定義された変数
  • ローカルスコープ:関数の中で定義された変数

例:スコープの違いを体験

x = 10

def test():
    x = 5
    print("関数内:", x)

test()
print("関数外:", x)

結果:

関数内: 5
関数外: 10

関数の中の x は別物として扱われます。これはローカルスコープにある変数が優先されるためです。


Google Colabの実行結果:


globalで外の変数を使う方法

x = 10

def test():
    global x
    x = 20
    print("関数内:", x)

test()
print("関数外:", x)

結果:

関数内: 20
関数外: 20

globalを使うと、関数内でも外の変数を書き換えることができます。


Google Colabの実行結果:


デフォルト引数で関数を柔軟に

関数にデフォルトの値(初期値)を設定することで、引数を省略しても動く便利な関数が作れます。

例:デフォルト引数の使い方

def greet(name="ゲスト"):
    print(name + "さん、こんにちは!")

greet()
greet("たろう")

結果:

ゲストさん、こんにちは!
たろうさん、こんにちは!

name を指定しなかった場合は “ゲスト” が使われます。


Google Colabの実行結果:

引数なしのgreet()関数は、name=ゲスト。実行結果は「ゲストさん、こんにちは!」
引数ありのgreet()関数は、name=たろう。実行結果は「たろうさん、こんにちは!」


キーワード引数と位置引数

関数を呼び出すときの引数には2種類あります。

  • 位置引数:順番で渡す
  • キーワード引数:名前を指定して渡す

例:両方の使い方

def info(name, age):
    print(f"名前:{name}, 年齢:{age}")

info("さくら", 20)  # 位置引数
info(age=25, name="そうた")  # キーワード引数(順番自由)

位置引数は順番に注意が必要ですが、キーワード引数なら順序が逆でもOKです。


Google Colabの実行結果:


関数のネスト(関数の中に関数)

関数の中に別の関数を定義することができます。これをネスト関数(nested function)と呼びます。

例:ネスト関数の定義と実行

def outer():
    def inner():
        print("内側の関数です")
    print("外側の関数です")
    inner()

outer()

結果:

外側の関数です
内側の関数です

ネスト関数は、特定の処理を関数内だけで使いたいときに便利です。


Google Colabの実行結果:

解説

  1. 最後の1行で outer 関数を呼び出します。
    この時点で、outer の中身が順番に実行されます。
  2. outer の中に inner 関数が定義されます。
    この時点では inner() は実行されていません。ただ「定義しただけ」です。
  3. outer 関数内のprint(“外側の関数です”) が実行されて、画面に表示されます。
  4. ここで、先ほど outer の中で定義した inner() 関数を実行します。
    inner() の中身 print(“内側の関数です”) が実行されて、画面に表示されます。

Google Colabで試してみよう!

PythonのコードはGoogle Colabですぐに試すことができます。

手順:

  1. Google Colab にアクセス
  2. 新しいノートブックを作成
  3. 上記のコードをコピー&ペースト
  4. Shift + Enterで実行

コードの結果がすぐに確認できるので、理解も早まります。


ChatGPTを活用して疑問を解決!

ChatGPTは関数の応用でも強力なサポートをしてくれます。

こんな使い方がおすすめ:

  • 「この変数はどのスコープですか?」
  • 「デフォルト引数にリストを設定したいけど大丈夫?」
  • 「ネスト関数をもっと活用したい」

エラーメッセージやコードの一部をそのまま貼り付けて質問してもOKです。


初心者がつまずきやすいポイントと解決法

よくあるミス解説
スコープの混同変数がどこで定義されたかをしっかり確認しましょう
デフォルト引数をミュータブル型で定義リストなどは注意(新しいインスタンスを使う)
ネスト関数を定義しただけで呼び出さないinner() を忘れずに呼びましょう

まとめ|関数の応用でコードの幅が広がる!

関数の応用をマスターすることで、コードの設計がグッと柔軟になります。

  • スコープの理解でバグが減る
  • デフォルト引数で関数がより使いやすくなる
  • ネスト関数で機能をコンパクトにまとめられる

Google Colabで試して、ChatGPTと一緒に疑問を解決しながら進めれば、理解も確実に深まります。

次回は「Pythonの標準ライブラリ」について学んで、さらに一歩先へ進みましょう!

▶ 次回の記事はこちら:
👉 ChatGPTで学ぶPython標準ライブラリ入門

タイトルとURLをコピーしました