【Python入門】関数の定義方法は?引数・戻り値の設定や呼び出し方について解説

関数を使うと、決まった処理を何度も利用できるため、作業の負担を大幅に減らすことができます。

Pythonでは、既に用意されている関数を利用するだけでなく、自分の行いたい処理に合わせて関数を作成することも可能です。

この記事では、Pythonにおける関数の作り方や引数・戻り値の定義方法、作成した関数の呼び出し方について解説していきます。

目次

関数の作り方(定義)

プログラミングでは、独自で関数を作成することを「関数を定義する」と呼んでいます。

Pythonで関数を作成する場合は、def文を使って定義を行います。

定義方法

def文を使った定義方法は、下図の通りです。

defの右隣には、半角スペースを空けて関数名を記述します。

名前をつける際は、Pythonの命名ルール(コーディング規約(PEP 8))にそって、英小文字とアンダーバー(_)のみ使用するのがおすすめです。

Python側でもともと用意されている関数の名前を付けてしまうと、処理内容が上書きされてしまいます。
標準関数の一覧を確認し、重複は避けるようにしましょう。

また、Pythonではインデント(字下げ)した内容に対して「この部分が関数で行う処理」と認識する仕様になっています。

そのため、処理内容とreturn文については必ず字下げを行うようにしてください

def文では、関数名以外に以下の3点を設定することができます。

  1. 外部からどのような値(引数)を受け取り、変数に保持するか
  2. 引数を使って、どのような処理を行うか
  3. 処理結果として、どのような値(戻り値)を外部に渡すか

引数の設定(複数可)

コロン( : )直前の括弧内では、外部からどのような値(引数)を受け取り、どの変数に保持するかを設定します。

例えば、外部から1つの値を受け取る必要がある場合は、引数を1つ設定します。

def func(num):  # funcという関数に、numという引数を設定

設定した引数名は、後の処理で使用しますので、受け取った値の特徴が分かりやすい名前にしておくと便利です。

また、複数の引数を受け取りたい場合は、カンマ区切りで設定を行います。

def func(num, word):  # funcという関数に、numとwordという引数を設定

もちろん、関数を作成する際には引数をなしで設定することも可能です。

その場合は、「外部の値に関係なく、いつも同じ処理を行い結果を返す」といった関数になります。

def func():  # 引数がないため、いつも同じ結果を返す

処理内容の設定

関数を作成したら、その内部で行いたい処理を記述します。

例えば以下のように記述すると、関数を実行した際に「Hello, World!」が出力されます。

def func():
    print("Hello, World!")  # 「Hello, World!」を表示する

また、外部から受け取った値(引数)を処理に用いることも可能です。

その場合は、引数に設定した変数を使って処理内容を記述します。

def func(num):
    x = num + 1  # xという変数に、num + 1の結果を保持する
    print(x)  # xの中身を表示する

戻り値の設定(複数可)

関数の最後の行には、処理結果としてどのような値(戻り値)を外部に渡すかを設定します。

戻り値を設定する際、関数の内部で作成した変数を用いることも可能です。

例えば、外部に1つの値を渡す必要がある場合は、戻り値を1つ設定します。

def func(num):
    x = num + 1
    return x  # xの中身の値を、結果として返す

複数の戻り値を渡したい場合は、カンマ区切りで設定を行います。

def func(num):
    x = num + 1
    y = num + x
    return x, y  # xとyの中身の値を、結果として返す

また、関数によっては戻り値を必要としない場合もあると思います。

以下の「引数の中身を表示するだけの関数」のように、return文を抜きにして作成することも可能です。

def func(word):
    print(word)  # wordの中身を表示する

関数の呼び出し方

作成した関数を実行する場合は、「関数名()」の形で呼び出しを行います。

プログラムの実行は、基本的に上から順番に行われるため、関数の呼び出しより先に定義を済ませておくようにしましょう

def func():  # 1:最初に、関数の定義を済ませておく(この時点では実行されない)
    print("Hello, World")

func()  # 2:上で定義したfuncという関数を実行

= 実行結果 =

Hello, World

引数を設定している場合

引数を必要とする関数の場合は、括弧()内に渡したい値を追記します。

この時に渡す値のデータ型は、関数内で使用する際のデータ型とあわせる必要があるため注意してください。

例えば以下の関数では、数値以外の値を引数にすると実行時にエラーが発生してしまいます。

def func(num):
    x = num + 1  # num(引数)が数値でないと足し算できない
    print(x)

func(123)  # 引数には数値を指定するようにする

= 実行結果 =

124

また、引数を複数渡したい場合は、カンマ区切りで設定を行います。

引数を記述する順番は、def文にて指定した変数の順番とあわせておくようにしましょう

def func(num, age):
    print("名前:", num)  # 「名前:」の後にnumの中身を表示
    print("年齢:", age)  # 「年齢:」の後にageの中身を表示

func("Taro", 22)  # Taroと22を引数として、func関数を実行

= 実行結果 =

名前: Taro
年齢: 22

戻り値を設定している場合

戻り値のある関数の場合は、返ってきた値を保持するための変数を用意する必要があります。

関数を実行する際に「変数 = 関数名(引数)」の形で記述すると、関数の実行結果(=戻り値)を変数に保持することができます

def func():
    return "テスト"  # 「テスト」を戻り値として返す

word = func()  # wordという変数に、func関数の結果を保持
print(word)  # wordの中身を表示

= 実行結果 =

テスト

また、戻り値が複数ある場合は、カンマ区切りで変数の指定を行います。

変数を記述する順番は、def文にて指定した戻り値の順番とあわせておくようにしましょう

def func():
    return "テスト", 123  # 「テスト」「123」を戻り値として返す

word, num = func()  # word・numという変数に、func関数の結果を保持
print(word)  # wordの中身を表示
print(num)  # numの中身を表示

= 実行結果 =

テスト
123

まとめ

この記事では、Pythonにおける関数の作り方や引数・戻り値の定義方法、作成した関数の呼び出し方法について解説しました。

プログラムの構造を理解しやすくするうえで、関数はとても重要な要素です。

同じ処理を繰り返す必要がある場合にも有効ですので、日頃から積極的に活用していくようにしましょう。

シェアはこちらから
目次