【Python】関数の定義と呼び出し―3分で理解する「def」

Python

Pythonで関数を定義する方法、及び関数を呼び出す方法(関数を実行する方法)を解説します。

関数はdef文を用いて定義、関数名を直接記述して呼び出しするだけなのでですが、引数や戻り値と言った基本的な知識がないと使えません

このページでは、関数とはそもそも何か?引数って?戻り値って何?という前提となる知識から初心者向けに易しめに解説します。

このページで学べる内容
  • 関数とは?引数・戻り値の基本知識
  • Pythonにおける関数定義方法
  • Pythonでの関数の呼び出し方法

Pythonエンジニアや、Pythonで1から自動化ツールを作ろうとしている方であれば知らないと恥ずかしい基本知識ばかりです。

是非最後までご覧ください。

【前提】関数とは何か?

関数は、一言で言えば「複数の処理を1つにまとめて名前を付けたもの」と説明できます。

プログラムをコーディングしていくと、同じような処理を複数回必要とする場合がでてきます。

このようなタイミングで、当該処理を予め構造化しておいて、何度も呼び出す形で利用することができればコード全体の「構造化」が図れ効率的なプログラミングが可能となります。

プログラムをコーディングしていくと、同じような処理を複数回必要とする場合がでてきます。このようなタイミングで、当該処理を予め構造化しておいて、何度も呼び出す形で利用することができればコード全体の「構造化」と「効率化」を向上させることが可能です。

Pythonでは、関数をdef文を用いて定義することができます。

Python:def文の基本

def文で関数の定義を行います。構文ルールは以下の通り。

構文ルール:def
def 関数名(引数1, 引数2, 引数3,・・・):
    処理内容1
    処理内容2・・・・
    return 戻り値

Pythonに共通するルールですが、def文で1つのブロックを構成するためインデント(字下げ)はすべて合わせる必要がある点に注意が必要です。

関数の実行方法

def文で定義した関数は、関数名と引数を指定するだけで実行可能です。

構文ルール:関数の実行
# 関数の定義
def 関数名(引数1, 引数2, 引数3,・・・):
    処理内容1
    処理内容2・・・・
    return 戻り値

# 関数の実行
関数名(引数1,引数2,引数3,・・・)

また、関数を別の変数に代入する形で呼び出すことも可能です。

# 関数の定義
def 関数名(引数1, 引数2, 引数3,・・・):
    処理内容1
    処理内容2・・・・
    return 戻り値

# 関数の実行
変数 = 関数名(引数1,引数2,引数3,・・・)

どちらも結果は全く同じです。

定義方法と呼び出し方法が何となく理解できたタイミングで、早速サンプルコードを確認していきましょう。

サンプルコード:def文

def func1 ():
    print("初めての関数")

func1()  # 関数の実行


# 結果 ⇒ 初めての関数

引数・戻り値なしの簡素な関数です(実際にこのような関数を定義することはあまり多くはありません。

もしくは、以下のように変数に代入する形で呼び出してもOK。

def func1 ():
    print("初めての関数")

a = func1()


# 結果 ⇒ 初めての関数

Python:関数の命名ルールについて

関数の命名ルールは、変数の命名ルールと基本的に同じです。

関数の命名ルール
  • 英語(大文字も小文字も可能)
  • 数字(0~9)
  • _(アンダースコア)

ただし、関数の先頭に数字を用いるのはNGです。エラー(SyntaxError: invalid syntax)となりますので、注意が必要です。

この点も変数の命名ルールと同じですね。

関数の「引数」と「戻り値」

関数の「引数」と「戻り値」について補足しておきます。

初心者の方は混乱しがちですが、実は考え方は非常に単純。

引数/戻り値`

引数
⇒関数に渡す値―関数へのインプット情報

戻り値
⇒関数から返される値―アウトプット情報

実際の例を見ながらイメージを深めましょう。

サンプルコード:引数と戻り値

def add_func(a,b):   # 関数「add_func」 引数⇒a/b
    return a + b

print(add_func(2,9)) # 関数の戻り値を表示

画面には「11」が表示されます。

どのようにして、画面に「11」が表示されるか?一つひとつ順に追って考えていきましょう。

サンプルコードの解説
def add_func(a, b):
    return a + b

2つの引数 "a" "b" を定義します。この "a" と "b" が関数へ渡されます(インプット)。

"a" と "b" を足した値をreturn-戻り値として定義(アウトプット)。

add_func(2, 9)

関数へ実際に渡す値を、「(2, 9)」として指定します。引き渡す順番通りに記述すればOK。

print(add_func(2, 9))

戻り値(アウトプット)には「11」が設定されており、この戻り値は直接変数に代入が可能です。

defで定義した引数と、実際に受け渡す値の数が異なる場合「TypeError」が発生します。

引数に渡す値を「引数名」で指定する方法

先ほど解説した通り、引数は定義した順番で渡すのが原則です。

ただし、どの引数にどの値を渡すのか?を明示的に指定することも可能

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

answer = add_func(b=9, a=2,)
print(answer)

この例では、「answer = add_func(b=9, a=2,)」としています。

すなわち、引数"b" には「9」を。引数"a" には「2」を渡していることになります。

複数の戻り値を設定する方法

戻り値を複数個指定することも可能です。

ただし、def文の中における "return" は1つだけです。

以下のように「,(カンマ)」で複数個の戻り値を指定すると、戻り値はタプルになります。

def calc_func(a, b):
    return a+b, a-b , a*b , a/b

answer = calc_func(2, 8,)
print(answer)


#結果  (10, -6, 16, 0.25)

Pythonを1から学習したい方は

Pythonをより実践的に学びたい―。実際にコーディングをしながら学びたい―。独学に限界を感じている―。

そんな方には、無料体験/オンライン完結もあるプログラミングスクールで学ぶのがおすすめです。都度検索しながら知識を補完していくのではなく、1から体系立てて学ぶことで短時間・かつ効率的にスキルハックすることが可能です。

各プログラミングスクールの特徴をまとめた記事をこちらに記載しておきますので、是非ご覧ください。

タイトルとURLをコピーしました