【Python無料学習】関数

※この記事は「2020年7月13日」に更新しました。

無料で学習できる Python(パイソン)講座。

今回は、関数について。

前回は、for文(繰り返し)について、紹介しました。

for文(繰り返し)

【Python無料学習】for文(繰り返し)

2020年7月12日

print、input などの組み込み関数は学習しましたが、自分で関数をつくることもできます。

それでは、解説していきます。

関数とは

関数は、プログラムの中の小さなプログラム(処理のまとまり)のようなものです。

関数の定義と呼び出し

関数の定義は、def を使うことで定義することができます。

def 関数名(引数):
    関数内の処理
    return 戻り値

定義した関数は、呼び出すことで使うことができます。

関数名(引数)

引数と戻り値は必要なければ、なくても問題ありません。

また、関数は呼び出される前に定義されている必要があります。



引数なしの関数

簡単な関数として、引数なしの関数を紹介します。

test1.py という以下のファイルを作成します。

# 関数の定義
def hello_world():
    print('Hello World!')

# 関数の呼び出し
hello_world()

実行結果は以下の通りです。

関数

return文について

return文を使えば、戻り値を設定することができます。

test2.py という以下のファイルを作成します。

# 関数の定義
def hello_world():
    print('Hello World!')
    return 'こんにちは世界!'

# 関数の呼び出し
msg = hello_world()

# 戻り値を表示
print(msg)

実行結果は以下の通りです。

関数

まずは、関数を呼び出しているので、関数内の処理が実行され、続いて戻り値を print関数で表示しているのが実行されています。

ローカルスコープとグローバルスコープ

関数を学習しているので、スコープという概念についても簡単に触れておきます。

関数内で定義された変数は、その関数内の範囲だけ使うことができます。

この範囲のことをスコープと言ったりします。

関数内で定義された変数は、ローカル変数といいます。

これに対して、すべての関数の外で定義された変数はグローバル変数といいます。

test3.py という以下のファイルを作成します。

msg = 'Hello World!'  # グローバル変数

# 関数の定義
def hello_world():
    msg = 'こんにちは世界!'  # ローカル変数
    print(msg)

# 関数の呼び出し
hello_world()

# グローバル変数を表示
print(msg)

実行結果は以下の通りです。

関数

ポイントは、hello_world 関数内の print の表示はローカル変数が表示されていて、関数外の print の表示はグローバル変数が表示されている点です。

global文について

関数内からグローバル変数を変更したいときは、global文を使います。

global 変数名

関数内でこの宣言をすると、この関数内ではグローバル変数を参照するので、宣言した変数名のローカル変数は作成しないようにと Python(パイソン)に伝えることができます。



サンプルプログラム

関数のサンプルプログラムです。

test4.py という以下のファイルを作成します。

msg = 'Hello World!'  # グローバル変数

# 関数の定義
def set_hello_japan():
    global msg
    msg = 'こんにちは世界!'

# 関数の呼び出し
set_hello_japan()

# メッセージを表示
print(msg)

実行結果は以下の通りです。

関数

最後に

いかがでしょうか。

今回は、関数について学習しました。

スコープという考え方は、どのプログラミング言語でも重要です。

基本的に必要のないところでの変数の参照はなるべく避けた方が良いです。

プログラマーは、この点を肝に銘じてコーディングする必要があります。