Pythonで関数を使うメリットや使い方、戻り値等について解説する

スポンサーリンク

この記事では、Pythonの関数についてまとめていきます。

スポンサーリンク

そもそも、Pythonで関数を使うメリットって何?

まずは、初心者の方向けにPythonで関数を使うメリットを解説します。

Pythonで関数を使う事で、関数の中に書いたコードを何回も使いまわすときに、関数を呼び出すだけで良くなるので、コードを効率よく書けるようになります

また、プログラミングはコードを書いて終わりではなく、その後もコードを改修していく必要がありますが、処理を関数毎に分けておくことで、「この関数にはこの処理が書かれている」と言う風にコードを分割できるので、コードの回収もしやすくなるのです。

Pythonでの関数の作り方

Pythonではdefキーワードを使って関数を定義していきます。

以下は、コードの一例です。

def hello():
          print('Hello World')

def add(x, y):
          print(f'arguments are {x} and {y}')
          return x + y

また、Pythonでは特に処理をしない空の関数を定義することもできます。

下のコードでは、function_name関数内にコメントを書いているだけです。

def function_name(arguments):
          # code statements

Pythonでの関数の呼び出し

関数は、関数名を指定することで呼び出すことができます。

もし、関数が引数を受け取る場合は、関数を呼び出す際に引数を渡さなければなりません。

hello()

sum = add(10 , 5)

print(f'sum is {sum}')

上記のコードでは、先ほど定義したhello()関数とadd()関数を呼び出しています。

また、Pythonの組み込み関数の1つであるprint()関数も呼び出しています。

Pythonの関数の種類について

Pythonには2種類の関数があります。

1. 組み込み関数。

print()、len()、str()などのPythonが提供する関数。

  1. ユーザー定義関数:Pythonのプログラムの中でプログラマが作る関数。

関数にデフォルトの引数を持たせる方法

Pythonでは、関数の引数にデフォルト値を設定することができます

呼び出し側が引数を渡さなかった場合、デフォルト値が使用されます。

def hello(year = 2022):
          print(f'Hello World {year}')

hello(2020) # 引数が渡された場合
hello() # 引数がない場合,代わりにデフォルト値が渡される

結果は以下の様になります。

Hello World 2020
Hello World 2022

関数に複数の戻り値を持たせる方法

Pythonの関数は複数の戻り値、return文を書くことができます。

ただし、return文の1つに到達すると、関数の実行は終了し、その値は呼び出し元に返されます。

def odd_even_checker(i):
          if i % 2 == 0:
            return 'even'
          else:
            return 'odd'

print(odd_even_checker(20))
print(odd_even_checker(15))

Pythonの関数の引数について

Pythonでは、関数定義に3種類のパラメータを使用することができます

  1. これまでの例で見てきたもの。
  2. 可変個数 キーワード以外の引数:例えば、def add(*args)
  3. キーワード引数や名前付き引数の数:例えば、def add(**kwargs)

    Pythonの変数引数に関する重要なポイントとして、以下のようなものがあります。

  • 引数の順番は、形式引数、 *args, kwargs とします。
  • argsとkwargsに変数パラメータ名を使用することは必須ではありません。しかし、コードの可読性を高めるために使用するのがベストプラクティスです。
  • argsの型は多プルです。したがって、マッピングされるタプルを変数argsに渡すことができます。
  • kwargsの型は辞書型です。

    kwargsの型は辞書型なので、辞書型を渡してargs変数とマッピングすることができます

    関数内で変数の引数を使用する簡単な例を示します。

def add(x, y,*args, kwargs):
          sum = x + y
          for a in args:
            sum += a

          for k, v in kwargs.items():
            sum += v

          return sum

total = add(1 , 2 , *(3 , 4), {"k1": 5 ,"k2": 6})

print(total)# 21

Python関数のデータ型

Python の関数は ‘function’ クラスのインスタンスです。


これはtype()関数で確認することができます

def foo():
          pass
print(type(foo))

Pythonで匿名関数を使う方法

Pythonで匿名関数を使う場合は、lambdaを使えばOKです。

lambdaを使えば、関数を引数に渡す処理等をシンプルに書けるようになります。

def square(x):
          return x * x

f_square = lambda x: x * x

print(square(10))  # 100
print(f_square(10))  # 100
タイトルとURLをコピーしました