第4章: Python 関数の定義と活用

4.1 関数とは何か?なぜ使うのか?

プログラミングにおける「関数」とは、一連の処理をまとめて再利用できるようにしたものです。関数を使うことで、同じコードを何度も書く必要がなくなり、コードの可読性や保守性が向上します。また、複雑なプログラムを小さなパーツに分解して整理することで、全体の構造をシンプルに保つことができます。

例えば、電卓アプリを作る場合、何度も使う「足し算」「引き算」などの処理を関数として定義することで、効率よく再利用できます。こうすることで、コードが読みやすくなり、バグを見つけやすくなります。

関数を使う主な理由は次の通りです:

  • コードの再利用性: 同じ処理を複数回使いたいときに、関数を呼び出すだけで済みます。
  • コードの見やすさ向上: 関数に名前をつけることで、何をする処理かが明確になり、コードが読みやすくなります。
  • メンテナンス性の向上: 変更が必要になった場合、関数を修正するだけで、すべての呼び出し箇所がその変更を反映します。

4.2 関数の作り方と呼び出し方

Pythonでは、関数を作るのは非常に簡単です。defキーワードを使い、関数名を指定して定義します。関数名は処理内容をわかりやすく表現する名前を付けるのが推奨されます。関数名の後にカッコ () が続き、その中に引数(必要であれば)を指定します。関数内に書かれたコードが、関数を呼び出したときに実行される処理です。

4.2.1 基本的な関数の定義

まず、引数や返り値のない基本的な関数を定義してみましょう。

def say_hello():
    print("Hello, World!")

この関数は、呼び出されると単純に「Hello, World!」というメッセージを出力します。実際に呼び出す方法は以下の通りです:

say_hello()

結果:

Hello, World!

4.2.2 引数を使った関数の定義

次に、引数を持つ関数を定義してみましょう。引数は、関数に外部から値を渡して、その値に基づいて処理を行うために使われます。

def greet(name):
    print(f"Hello, {name}!")

この関数は、name という引数を受け取り、その値を使ってメッセージを表示します。呼び出す際には、引数として名前を渡します:

greet("Alice")

結果:

Hello, Alice!

引数を持つことで、同じ関数が異なる入力に対して動的に動作するようになります。

4.2.3 複数の引数を使う

関数に複数の引数を渡すことも可能です。例えば、2つの数値を受け取って、それらの合計を表示する関数を定義してみましょう。

def add_numbers(a, b):
    result = a + b
    print(f"The sum of {a} and {b} is {result}.")

この関数は、2つの引数 ab を受け取り、その合計を計算して結果を出力します。

add_numbers(3, 5)

結果:

The sum of 3 and 5 is 8.

4.3 引数と返り値

関数に引数を渡すことで、外部からのデータに基づいて処理を行うことができますが、関数が結果を返すこともできます。これが「返り値」と呼ばれるものです。Pythonでは、return キーワードを使って関数から値を返すことができます。

4.3.1 返り値のある関数

たとえば、2つの数値を足し合わせ、その結果を返す関数を定義しましょう。

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

この関数は、ab の合計を計算し、その結果を返します。返された結果を別の変数に代入したり、そのまま使ったりすることができます。

result = add(3, 7)
print(result)

結果:

10

4.3.2 返り値のない関数

先ほどの say_hello 関数のように、明示的に返り値を持たない関数もあります。その場合、Pythonでは自動的に None が返されます。これはあまり目に見える効果はありませんが、知っておくと便利です。

4.3.3 複数の値を返す

Pythonの関数は、複数の値を一度に返すこともできます。例えば、2つの数値の足し算と引き算の結果を同時に返す関数を考えてみましょう。

def add_and_subtract(a, b):
    addition = a + b
    subtraction = a - b
    return addition, subtraction

この関数は、足し算の結果と引き算の結果をタプル(複数の値をまとめたデータ型)として返します。

sum_result, sub_result = add_and_subtract(10, 3)
print(f"Sum: {sum_result}, Subtraction: {sub_result}")

結果:

yamlSum: 13, Subtraction: 7

複数の値を返すことで、1つの関数から複数の結果を同時に得ることができ、コードがよりシンプルになります。

4.4 デフォルト引数とキーワード引数

関数の引数には、デフォルト値を設定することができます。これにより、関数を呼び出すときに引数を省略した場合でも、あらかじめ設定した値が使われます。また、キーワード引数を使うことで、引数の順序にとらわれずに明示的に指定できます。

4.4.1 デフォルト引数

次の例では、greet 関数にデフォルトの名前を設定します。

def greet(name="Guest"):
    print(f"Hello, {name}!")

引数を指定しなかった場合でも、"Guest" というデフォルトの名前が使われます。

greet()  # "Guest" を使う
greet("Alice")  # "Alice" を使う

結果:

Hello, Guest!
Hello, Alice!

4.4.2 キーワード引数

関数を呼び出すとき、引数をキーワードで指定することができます。これにより、引数の順序に依存せず、明示的に値を渡すことが可能です。

def describe_person(name, age, city):
    print(f"{name} is {age} years old and lives in {city}.")

この関数を呼び出すとき、引数の順序に依存せずにキーワードを使って渡せます。

describe_person(age=25, city="Tokyo", name="Tom")

結果:

csharpTom is 25 years old and lives in Tokyo.

4.5 まとめ

この章では、Pythonにおける関数の基本的な定義と活用方法について学びました。関数は、コードを整理し、再利用可能にするための強力なツールです。関数を使うことで、プログラム全体をより読みやすく、保守しやすいものにできます。


初心者におすすめ!プログラミングスクールのススメ

未経験でも気軽に!サブスク型プログラミングスクール【Freeks】

プログラミングを始めたいと思っているそこのあなた、独学よりもプログラミングスクールが断然おすすめです!理由は簡単、続けやすさです。

独学の挫折率、驚きの87.5%!

独学でプログラミングを続けるのは、実はかなりハードルが高いんです。データによると、なんと87.5%もの学習者が途中で挫折しているとか。一方、各プログラミングスクールが公表しているデータによると、受講生の約95%が最後までやり抜いているとのこと。数字を見れば一目瞭然、プログラミングスクールの方が圧倒的に続けやすいんです。

有料と無料、スクールの違いは?

プログラミングスクールには有料と無料のタイプがありますが、その違いは次の通りです:

  • 受講条件が異なる
  • 学べるスキルやカリキュラム内容が異なる
  • 就職や転職のサポート内容が異なる

どちらが自分に合っているか、よく考えて選ぶのが大事です。

サブスク型プログラミングスクール『FREEKS(フリークス)』に注目!

プログラミング初心者でも学びやすいと評判の『FREEKS』、その特徴は以下の通り:

  • 未経験者向けのわかりやすいカリキュラム
  • 経験豊富なエンジニアのサポート
  • オンラインで自分のペースで学習可能

なんと、月会費のみで全カリキュラムが受け放題!Java、PHP、HTML/CSS、JavaScriptなど、多彩なプログラミング言語が学べるんです。しかも、AIが質問に自動で答えてくれるシステムも導入済み。

終了後は副業もサポート!

カリキュラムを終了した後には、Freeks経由で未経験者でも取り組める副業案件の受注が可能。実務を通じてスキルを磨き、市場価値の高いエンジニアへの道が開けます。

独学で悩むくらいなら、まずはプログラミングスクールをチェックしてみるのもアリかもしれませんよ!
 ↓ ↓ こちらをクリック ↓ ↓ 

Related Post

第7章: Pythonのオブジェクト指向プログラミング(OOP)入門第7章: Pythonのオブジェクト指向プログラミング(OOP)入門

プログラミング言語にはいくつかのパラダイムがありますが、その中でオブジェクト指向プログラミング(OOP)は非常に強力で、柔軟性の高い方法の一つです。OOPは、プログラムを「オブジェクト」の集まりとして捉え、そのオブジェク […]