【Python】関数の基礎的な書き方などを解説


Pythonプログラミングにおいて、関数は非常に重要な要素です。
関数の書き方理解することは、コードを簡潔にし、再利用性を高め、
プログラムを効果的に構造化するために不可欠です。

この記事では、
Pythonの関数の基本知識と書き方について初心者でも理解しやすいように解説してます!!

目次

Pythonの関数 基本概念や書き方

新人:グラミちゃん

関数って何だろう?

エンジニア:プロくん

関数は、プログラム内で
特定のタスクや処理を実行するためにまとめられた
コードのかたまりだよ。

これによって、同じ処理を何度も書くことなく、簡単に再利用できるんだ。

新人:グラミちゃん

なるほど。関数の書き方はどう書くの?

関数の書き方

pythonの関数の書き方(基本構文)はこのように書きます。

基本構文

def 関数名(引数1, 引数2, ...):
    処理1
    処理2
    # オプション: return文を使って値を返す
    return 戻り値

これには以下の要素が含まれます:

  • def キーワード: 関数を定義するために使用されます。
  • 関数名: 定義する関数の名前です。
  • (引数1, 引数2, ...): 関数が受け取る引数のリストです。引数がない場合は空のカッコ () を使用します。
  • 処理1, 処理2 など: 関数が実行する処理のコードブロックです。
  • return 戻り値: 関数から値を返すためのオプションの文です。戻り値がない場合は省略されます。
エンジニア:プロくん

書き方はまず、関数を定義するんだ。
Pythonでは、defというキーワードを使って始めて、コロン(:)で終わりにさせるんだ。そして、関数の本体はインデントで表現されるよ

インデントとは、文章の行頭に空白を挿入して先頭の文字を右に押しやることで、文章を読みやすくするための機能

関数の書き方の例

def my_function():  # 関数の本体
    print("Hello, this is my function!")
新人:グラミちゃん

例えばこれで「my_function」という関数が定義されているってこと?

エンジニア:プロくん

そうだね。これで「my_function」という名前で関数ができた。
本体には、実際にやりたい処理を書くことができるよ。

Pythonの関数を呼び出す書き方

新人:グラミちゃん

関数を呼び出すための書き方を教えてほしい

エンジニア:プロくん

呼び出す時の書き方は
使いたいところで、その関数を呼び出すんだ。
例えば、

my_function()
エンジニア:プロくん

これで、関数が呼び出されて、「Hello, this is my function!」と表示されるよ。

新人:グラミちゃん

なるほど、呼び出すときの書き方が理解できた!

同じ処理を何度も書かなくてすむから、コードもスッキリするし便利だね!

エンジニア:プロくん

そうだよ。コードが簡潔になり、保守性も向上するんだ。
これからプログラミングの楽しさが倍増するよ!

Pythonの関数の引数と戻り値とは?書き方は?

関数は引数を受け取り、結果を返すことができます。
引数は関数内で利用される変数であり
戻り値は関数から得られる結果です。

エンジニア:プロくん

引数と戻り値って知ってる?

新人:グラミちゃん

ああ、引数って関数に渡すデータのことで、戻り値って関数から得られる結果のことだよね?
でも書き方はどう書くの?

エンジニア:プロくん

その通り!書き方を説明するね。
例えば、挨拶の関数を考えてみよう。
関数を定義する時に、引数を指定してあげる。
名前を引数として渡すと、挨拶の文を作ってくれるんだ。

新人:グラミちゃん

なるほど、引数は関数に渡すデータのことね。
では、それを具体的にどうやって使うの?

エンジニア:プロくん

例を見てみよう!こんな関数があるとしよう。

def greet(name):
    return "Hello, " + name + "!"
エンジニア:プロくん

これを呼び出す時に、引数に具体的な名前を渡してあげるんだ。例えば、

result = greet("Alice")

結果:

"Hello, Alice!"
エンジニア:プロくん

これで、”Hello, Alice!”って挨拶が得られるんだ。そして、この関数は”result”という変数に挨拶の結果を戻り値として返しているんだよ。

新人:グラミちゃん

なるほど、引数にデータを渡して関数を呼び出し、戻り値を使うんだね。

エンジニア:プロくん

そうそう!もちろん、戻り値を変数に代入して利用することができる。
これで、関数の結果を他の部分で再利用できるんだ。

新人:グラミちゃん

大体の書き方は分かったけど、
もっと例題を見てみたい!

エンジニア:プロくん

いいね!例えば、2つの数を足し算して結果を返す関数を考えてみよう。

def add_numbers(a, b):
    return a + b
エンジニア:プロくん

この関数を呼び出すときに、引数に具体的な数値を渡してみよう。

result = add_numbers(3, 5)
エンジニア:プロくん

これで、”result”には8が入っているよ。こうして、関数は引数を受け取り、その結果を戻り値として返すんだ。

新人:グラミちゃん

書き方が理解できた!
引数と戻り値、どちらも大事なんだね。ありがとう!

Pythonの引数のデフォルト値とは?

エンジニア:プロくん

ねえ、Pythonの関数って、引数にデフォルト値って設定できるって知ってる?

新人:グラミちゃん

わからない!

エンジニア:プロくん

例えば、こんな感じの関数があるとしよう。

def greet(name="Guest"):
    return "Hello, " + name + "!"
エンジニア:プロくん

これで、引数なしで関数を呼び出すと、
デフォルトで “Hello, Guest!” が返ってくるんだよ。

新人:グラミちゃん

なるほど、
つまり引数を指定しなかった場合に、デフォルト値が代わりに使われるってこと?

エンジニア:プロくん

そうそう、その通り!例えば、result = greet()ってやったら、”Hello, Guest!”って結果が得られるわけ。

新人:グラミちゃん

便利だね。これで、引数の指定を忘れても安心ってことか。

エンジニア:プロくん

そうそう、コードを書くときに、デフォルト値を設定しておくと、特定のケースで引数を省略できるから効率的だよ。

Pythonのドキュメンテーション文字列(Docstring)とは?

エンジニア:プロくん

今日はPythonのプログラミング慣習について話そうか。

新人:グラミちゃん

いいアイデアだね。
関数の冒頭に書くあれ、ドキュメンテーション文字列ってやつ?

エンジニア:プロくん

そう、それだよ。それをDocstringって呼ぶんだ。
ドキュメンテーション文字列は、関数やクラスの冒頭に書かれたコメントで、そのコードの説明や使い方を記述するためのものさ。

新人:グラミちゃん

なるほど。でも、なんでわざわざそこに書く必要があるの?

エンジニア:プロくん

良いプログラミング慣習として、他の人や自分が後で見た時に、その関数やクラスが何をしているのか、どんな引数を取るのか、何を返すのかが分かるようにするためさ。

ドキュメンテーション文字列(Docstring)の書き方

新人:グラミちゃん

書き方が知りたい!

エンジニア:プロくん

書き方はこんな感じだよ。
関数の定義の下にトリプルクォートでくくられたコメントを書く。引数の型や戻り値の型、そして簡潔な説明を含めると良い。

def square(number):
    """
    与えられた数値の二乗を返す関数

    Parameters:
    number (int): 二乗を計算する対象の数値

    Returns:
    int: 与えられた数値の二乗
    """
    return number ** 2
新人:グラミちゃん

なるほどこれで書き方がわかった!
関数の役割や使い方が一発で分かりそうだね。

エンジニア:プロくん

そうだね。他の人と協力してプロジェクトを進めるときや、将来の自分が見た時に、このドキュメンテーション文字列の書き方を覚えておくと助けになるんだよ。

Pythonのローカル変数とグローバル変数とは?

新人:グラミちゃん

ねえ、Pythonでプログラミングしていて、ローカル変数とグローバル変数って何なの?

エンジニア:プロくん

ああ、それは変数のスコープってやつだよ。
関数内で定義された変数は、その関数内でしか有効じゃないんだ。
それがローカル変数って呼ばれてる。

新人:グラミちゃん

なるほど、関数内でしか使えないんだね。じゃあ、逆に関数外で定義された変数は?

エンジニア:プロくん

そう、それがグローバル変数。関数の外で宣言されると、どこからでもアクセスできるよ。他の関数でも使えるし、プログラム全体で共有される変数だね。

新人:グラミちゃん

なるほど、関数内外での変数の使い分けって大事なんだね。
ありがとう!

エンジニア:プロくん

うん、そうだよ。ローカル変数は関数内の一時的な作業に、グローバル変数はプログラム全体で共有したい情報に使うといいよ。

ローカル変数:関数内で定義された変数は、その関数内でのみ有効であり、外部からはアクセスできません。
グローバル変数:関数外で定義された変数は関数内外で利用できます。

Pythonの再帰関数とは?

エンジニア:プロくん

再帰関数は関数が自分自身を呼び出すことができる関数のことさ。
これを使うと、問題を小さな部分問題に分割して解決することができるんだ。

新人:グラミちゃん

なるほど、どんな時に再帰関数を使うんだろう?

エンジニア:プロくん

例えば、ある問題が同じ種類の小さな問題に分割できる場合、
再帰が役立つ。それで各部分問題を解いて最終的な答えを得るんだ。

新人:グラミちゃん

それは面白いね。どうして再帰を使うのか?何かメリットがあるの?

エンジニア:プロくん

そうだね。再帰を使うと、コードがシンプルで読みやすくなり、同じ処理を簡潔に表現できることがある。ただし、無限ループにならないように注意が必要だよ。

新人:グラミちゃん

なるほど、再帰関数は小さな問題に切り分けて解決するのか。
理解したよ、ありがとう!

エンジニア:プロくん

どういたしまして。再帰は便利なテクニックだから、機会があればぜひ試してみてね。

関数が自分自身を呼び出すことができることを再帰と呼びます。
再帰を使用することで、問題をより小さな部分問題に分割し、解決できる場合があります。

まとめ

エンジニア:プロくん

Pythonの関数の基本的な関数の書き方や呼び出し方、引数と戻り値の取り扱い、デフォルト値の設定、ドキュメンテーション文字列、変数のスコープ、再帰関数などについて理解することで、効果的でクリーンなコードを書くことができるよ!

新人:グラミちゃん

はい!Pythonの関数の基本的な関数の書き方の理解が出来ました!
頑張ってみます!

目次