【Python初心者】関数の意味・定義・使い方・return文

プログラミングでは、冗長な表現より無駄のない簡潔な表現が求められます。

簡潔にプログラムをかけると、

  • 人が見てわかりやすい
  • 計算機が最適化などをして処理しやすい

などの利点があります。

そこでこの記事では、プログラムの簡潔化に欠かせない関数の意味・定義・その他知っておくべき事項について解説します!

Pythonのプログラミング学習に不安を感じている方へ

AIやデータサイエンスを学びたくてPythonを学び始めたけど
「独学ではやっぱり限界がある」
と不安を感じた方にオススメしたいのが、Aidemy Premium Plan
AIに関する幅広い種類の講座徹底したコーチング指導が特徴です!

実務を見据えてPythonをがっつり学習していきたい方は、まずは無料の「オンライン相談」に参加してみてください。

また、Aidemy Premium Planのメリットやデメリットなどについては、以下の記事も参考にしてください。
Aidemy(アイデミー)の評判と口コミまとめ!受講したほうがいい理由を紹介



Pythonでの関数とは?

Pythonにおける関数とは、決まった複数の処理を1行で行えるようにした呪文のようなものです。

例えば、

def greeting():
    print('おはようございます')
    print('こんにちは')
    print('こんばんは')

という関数を定義した場合、

greeting()

と入力することで、

おはようございます
こんにちは
こんばんは

という結果が返ってきます。

これは、

def greeting():
 print   (‘おはようございます’)
 print   (‘こんにちは’)
 print   (‘こんばんは’)

内の

    print(‘おはようございます’)
    print(‘こんにちは’)
    print(‘こんばんは’)

という複数の処理を

greeting()

での1行で行うと定義していたからなのです。

関数を使うと、同じような処理が多くでてくる場合に簡潔に書けたり後から複数箇所のプログラムを一括して変更しやすかったりします(プログラミング学習を進めていくと有り難さがわかります)。

Pythonでの関数の定義(引数なし)

関数は以下のように定義します。

def (関数名)():
    行いたい処理

①先頭にdefを書く
②関数名を書く
③「:」を書く
④改行+インデントをして、行いたい処理を書く

Pythonでは、コードのブロック下げにより、繰り返したい処理を指定することができるので、処理の最後にendを書く必要はありません。

また、「:」は書き慣れるまで記述忘れが多いので、注意しましょう。

例えば、上記の例でみたように以下のようにプログラムを書くことができます。

def greeting():
    print('おはようございます')
    print('こんにちは')
    print('こんばんは')

Pythonでの関数の定義(引数あり)

Pythonの関数では、引数を渡し、引数ごとに異なる結果を得ることができます。

引数あり関数は以下のように定義します。

def (関数名)((引数名)):
    行いたい処理

①先頭にdefを書く
②関数名を書く
③引数名を()内に書く
④「:」を書く
⑤改行+インデントをして、行いたい処理を書く(ここに引数がある)

引数を変えることで異なる出力になります。

def greetingTo(name):
    print(name + 'さん、おはようございます')
    print(name + 'さん、こんにちは')
    print(name + 'さん、こんばんは')

と定義します。

greetingTo('来栖')

と入力すると、

来栖さん、おはようございます
来栖さん、こんにちは
来栖さん、こんばんは

という出力になります。

名前を変えると、

greetingTo('江嶋')
江嶋さん、おはようございます
江嶋さん、こんにちは
江嶋さん、こんばんは

出力も変わります!

Python関数の戻り値(return文)

Pythonの関数ではreturn文を用いることで、戻り値を指定できます。

先程までの関数は処理を行う呪文のような関数でしたが、戻り値を設定することで関数自体を値として扱うことができます。

例えば、以下のようにprint()関数で出力することもできます!

def addition(a, b):  # 足し算の関数を定義
    c = a + b  # 引数同士を足したものをcに代入
    return c  #関数をcという値とみなす(戻り値)

と定義して、

print(addition(3, 4))
print(addition(5, 6))

と入力すると、

7
11

と出力されます!

Python関数のローカルスコープとグローバルスコープ

関数の中で設定された変数はローカルスコープの中に存在し、ローカル変数と呼ばれます。

一方、関数の外で設定された変数はグローバルスコープの中に存在し、グローバル変数と呼ばれます。

新しい言葉ばかりで難しく感じるかもしれませんが、ローカルは「関数内」、グローバルは「関数外」だととらえておけばOKです。

ここでは、ローカル変数はグローバルスコープで使えない、つまり関数内の変数は関数外では使えないということを覚えてください。

以下のプログラムでは、ローカル変数をグローバルスコープで使っているのでエラーが出ます。

def tax(price):
    incPrice = price * 1.1
    return int(incPrice)

print(incPrice)
# incPriceが定義されていないとエラー

逆に、グローバル変数はローカルスコープで使えます(関数外で定義した変数を関数内で使う)。

total = 100

def balance(cost):
    a = total - cost
    return a

print(balance(30))  #70

最後に: Pythonで関数を使いこなして簡潔なコードを書こう!

関数はPythonのプログラミングに欠かせない文法です。

しっかり理解して、よりスタイリッシュなコードを書けるようにしましょう!









この記事をかいた人

Yuuu

Webマーケッター。 統計学やAIにも興味があり、 Python/Octaveを用いたデータサイエンスを学んだり、 G検定に合格したりしている。