関数を使ってコードを整理する【自分だけの命令を作ろう】

学び・スキルアップ

前回までで、条件分岐繰り返し処理 を学び、
だいぶ「プログラムらしいこと」ができるようになってきました。

しかし、少し複雑なプログラムになると、
同じ処理を何度も書くことが増えてきます。

そんな時に登場するのが 関数(function) です。
関数を使えば、「処理をひとまとめにして再利用できる」 ようになります。


🧠 関数とは?

関数は「命令のセットに名前をつけたもの」です。
たとえば、次のようなものです:

「水を沸かす」という処理を何度も書く代わりに、
一度だけ def boil_water(): と定義して、
必要な時に呼び出す。


🧩 関数の基本構文

Pythonの関数は、次のように定義します。

def 関数名():
    実行する処理

呼び出す時は 関数名() と書きます。


🔹 例1:単純な関数

def greet():
    print("こんにちは!Pythonへようこそ。")

greet()

出力:

こんにちは!Pythonへようこそ。

💡 def は「define(定義する)」の略です。
関数を定義したら、呼び出さないと実行されません!


🎯 関数に「入力」を渡す(引数)

関数には「引数(ひきすう)」という入力を渡すことができます。
これにより、同じ関数でも動作を変えられます。


🔹 例2:名前を渡す関数

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

greet("太郎")
greet("花子")

出力:

こんにちは、太郎さん!
こんにちは、花子さん!

関数に渡す値を 引数(parameter) と呼びます。
呼び出す側で指定する値を 実引数(argument) と呼ぶこともあります。


🧾 関数の「出力」を返す(戻り値)

関数の結果を呼び出し元に返したい時は、
return を使います。


🔹 例3:計算結果を返す関数

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

result = add(10, 5)
print(result)

出力:

15

💡 return のあとは「返したい値」を書きます。
print() のように出力するわけではなく、値を戻す だけです。


🔢 複数の引数と戻り値

関数は引数をいくつでも取れます。
また、複数の値を同時に返すこともできます。


🔹 例4:四則演算をまとめて返す

def calc(a, b):
    add = a + b
    sub = a - b
    mul = a * b
    div = a / b
    return add, sub, mul, div

result = calc(8, 4)
print(result)

出力:

(12, 4, 32, 2.0)

戻り値が複数ある場合は タプル(カッコでまとめたデータ)になります。


🎨 例5:戻り値を個別に受け取る

def calc(a, b):
    return a + b, a - b

x, y = calc(10, 3)
print("足し算:", x)
print("引き算:", y)

出力:

足し算: 13
引き算: 7

こうして「複数の値を分けて受け取る」ことも可能です。


🧩 デフォルト引数(初期値つき)

引数に初期値(デフォルト値)を設定しておくと、
引数を省略しても呼び出せるようになります。


🔹 例6:デフォルト値つき関数

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

greet()
greet("さくら")

出力:

こんにちは、ゲストさん!
こんにちは、さくらさん!

🔁 関数の中から関数を呼ぶ

関数の中で別の関数を呼ぶこともできます。
処理をさらに分けて整理できるようになります。


🔹 例7:関数を組み合わせて使う

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

def double(n):
    return n * 2

# addの結果をdoubleに渡す
result = double(add(3, 4))
print(result)

出力:

14

💡 関数を「部品」として組み合わせることで、
大きなプログラムをシンプルに設計できます。


🧠 応用:最大値を求める関数を作る

def get_max(a, b, c):
    max_num = a
    if b > max_num:
        max_num = b
    if c > max_num:
        max_num = c
    return max_num

print(get_max(10, 30, 20))

出力:

30

🧩 応用:平均点を求める関数

def average(scores):
    total = sum(scores)
    avg = total / len(scores)
    return avg

result = average([80, 90, 70, 100])
print(f"平均点は {result} 点です。")

出力:

平均点は 85.0 点です。

💡 sum() はリストの合計を出すPython標準の関数です。
len() は要素数を数える関数です。


🧩 応用:関数を使ってプログラムを整理する

def greet_user(name):
    print(f"ようこそ、{name}さん!")

def show_menu():
    print("1. 天気を見る")
    print("2. ニュースを読む")
    print("3. 終了")

def main():
    name = input("お名前を教えてください:")
    greet_user(name)
    while True:
        show_menu()
        choice = input("番号を選んでください:")
        if choice == "3":
            print("またね!")
            break
        print("まだこの機能は準備中です。\n")

main()

出力例:

お名前を教えてください:太郎
ようこそ、太郎さん!
1. 天気を見る
2. ニュースを読む
3. 終了
番号を選んでください:3
またね!

💡 main() 関数のように「全体の流れ」をまとめると、
プログラムが読みやすくなります。


📝 この章のまとめ

  • def で関数を定義する
  • return で結果を返す
  • ✅ 引数を渡して動作を変えられる
  • ✅ デフォルト引数で柔軟に
  • ✅ 関数の中から他の関数を呼び出せる

関数を使えるようになると、プログラムが一気に整理されます。

コメント