【6日でできるPython入門】関数①

 Pythonでは、今まで「組み込み関数」や「メソッド」を多く使ってきました。ですが、プログラムが大きくなってくると、自分自身で関数を定義して使いたい場面が増えてきます。関数を使うと「同じ処理を何度も書く」必要がなくなり、コードがすっきりして管理しやすくなります。また、処理のまとまりに名前を付けて再利用できるため、プログラムの構造も明確になります。ここでは、Pythonで自作の関数を定義し、使いこなす方法を実例とともに学んでいきます。

1.関数の基本と定義方法

1.1. 関数を定義して呼び出す

Pythonで関数を定義するには、def キーワードを使います。

ファイル名: lesson17-1.py

def display_greeting():
    print("こんにちは!Pythonの勉強を始めましょう。")

# 関数を3回呼び出す
display_greeting()
display_greeting()
display_greeting()

実行結果

こんにちは!Pythonの勉強を始めましょう。
こんにちは!Pythonの勉強を始めましょう。
こんにちは!Pythonの勉強を始めましょう。

解説

  • def display_greeting(): で「display_greeting」という関数を定義しています。
  • 関数本体はインデント(字下げ)された部分です。
  • 関数は「定義」してから「呼び出す」ことが必要です。

1.2. 関数定義の順番とスコープ

関数は定義より前に呼び出すことはできません

ファイル名: lesson17-2.py

show_message()  # ここでエラーになる

def show_message():
    print("このメッセージは関数の中です。")

実行結果

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    show_message()
NameError: name 'show_message' is not defined

解説

  • Pythonは上から順番にコードを読み込むため、関数定義より前で呼び出すと「未定義」としてエラーになります。

2.関数の利点と使いみち

2.1. コードの再利用

同じ処理を繰り返し書くよりも、関数にまとめておけば何度でも呼び出せます。

ファイル名: lesson17-3.py

def show_welcome():
    print("ようこそ、プログラムへ!")

for i in range(3):
    show_welcome()

実行結果

ようこそ、プログラムへ!
ようこそ、プログラムへ!
ようこそ、プログラムへ!

2.2. コードの見通しを良くする

関数を使うことで、処理のまとまりに「名前」をつけてプログラムの流れを分かりやすくできます。

ファイル名: lesson17-4.py

def 初期設定():
    print("初期設定を開始します。")

def データ読み込み():
    print("データを読み込みます。")

def 結果表示():
    print("処理結果を表示します。")

# メインの流れ
初期設定()
データ読み込み()
結果表示()

実行結果

初期設定を開始します。
データを読み込みます。
処理結果を表示します。

解説

  • 関数名だけで何をしているか一目で分かるようになります。
  • メイン処理の流れが簡潔に記述できます。

3.引数と戻り値

3.1. 引数つき関数

関数に「入力値(引数)」を渡して動作を変えることができます。

ファイル名: lesson17-5.py

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

greet_person("鈴木")
greet_person("佐藤")

実行結果

鈴木さん、こんにちは!
佐藤さん、こんにちは!

解説

  • nameが「仮引数」、関数呼び出し時に渡す「鈴木」「佐藤」が「実引数」です。

3.2. 複数の引数・キーワード引数

ファイル名: lesson17-6.py

def 紹介(name, age):
    print(f"私は{name}、{age}歳です。")

紹介("山田", 20)
紹介(name="高橋", age=25)

実行結果

私は山田、20歳です。
私は高橋、25歳です。

解説

  • 複数の引数はカンマで区切って定義します。
  • name="高橋" のようにキーワード引数で渡すこともできます。

3.3. 戻り値(return)

計算した結果などを呼び出し元に返すには、return を使います。

ファイル名: lesson17-7.py

def 合計(a, b):
    return a + b

result = 合計(7, 5)
print(f"合計は{result}です。")

実行結果

合計は12です。

解説

  • return の後に返したい値を記述します。
  • 戻り値は呼び出し元で変数などに受け取って使います。

3.4. 複数の戻り値

ファイル名: lesson17-8.py

def 四則演算(a, b):
    return a + b, a - b, a * b, a / b

加算, 減算, 乗算, 除算 = 四則演算(12, 3)
print(f"加算: {加算}, 減算: {減算}, 乗算: {乗算}, 除算: {除算}")

実行結果

def 四則演算(a, b):
    return a + b, a - b, a * b, a / b

加算, 減算, 乗算, 除算 = 四則演算(12, 3)
print(f"加算: {加算}, 減算: {減算}, 乗算: {乗算}, 除算: {除算}")

解説

  • return で複数の値を返すと「タプル」になります。
  • 呼び出し側でアンパックして個別に受け取ることができます。

まとめ表:関数の基本要素

概念説明
定義def 関数名(): で関数を作成def hello(): print("こんにちは")
引数丸括弧内で値を受け取るdef show(name):
戻り値returnで値を返すreturn a + b
複数戻り値カンマ区切りで複数値を返すreturn x, y
呼び出し関数名()で実行hello()
キーワード引数引数名=値 で渡すshow(name="田中")

ここでは、Pythonで自作関数を作り、柔軟なプログラムを組むための第一歩をしっかり身につけました。