【Python入門】関数の定義方法は?引数・戻り値の設定や呼び出し方について解説
関数を使うと、決まった処理を何度も利用できるため、作業の負担を大幅に減らすことができます。
Pythonでは、既に用意されている関数を利用するだけでなく、自分の行いたい処理に合わせて関数を作成することも可能です。
この記事では、Pythonにおける関数の作り方や引数・戻り値の定義方法、作成した関数の呼び出し方について解説していきます。
関数の作り方(定義)
プログラミングでは、独自で関数を作成することを「関数を定義する」と呼んでいます。
Pythonで関数を作成する場合は、def
文を使って定義を行います。
定義方法
def
文を使った定義方法は、下図の通りです。
def
の右隣には、半角スペースを空けて関数名を記述します。
名前をつける際は、Pythonの命名ルール(コーディング規約(PEP 8))にそって、英小文字とアンダーバー(_)のみ使用するのがおすすめです。
また、Pythonではインデント(字下げ)した内容に対して「この部分が関数で行う処理」と認識する仕様になっています。
そのため、処理内容とreturn
文については必ず字下げを行うようにしてください。
def
文では、関数名以外に以下の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における関数の作り方や引数・戻り値の定義方法、作成した関数の呼び出し方法について解説しました。
プログラムの構造を理解しやすくするうえで、関数はとても重要な要素です。
同じ処理を繰り返す必要がある場合にも有効ですので、日頃から積極的に活用していくようにしましょう。