[Python] 関数型プログラミング

関数・引数・返り値(基礎)

・関数 : 複数行のプログラムをまとめて実行
・引数 : 関数に渡される変数(ex.1, ex.3)
・返り値 : 関数内での処理結果を関数外に渡すときに設定(ex.2, ex.3)

# 文法1_関数の定義
def 関数名():
    関数を呼び出したときのプログラム

# 文法2_引数の定義
def 関数名(x):
    関数を呼び出したときのプログラム

関数名(a)
# xは変数、aが引数

# 文法3_返り値の定義
def 関数名():
    関数を呼び出したときのプログラム
    return プログラム内で定義した変数

x = 関数名()
# xは変数、引数は用いていないが、用いることもできる
# ex.1
def plus(numerical):
    print(10 + numerical)

plus(5)
>>> 15

# ex.2
def greet_word():
    greet_morning = 'Good Morning'
    greet_noon = 'Hello'
    greet_evening = 'Good evening'
    return greet_noon

print(greet_word())
>>> 'Hello'

# ex.3
def plus(numerical):
    calculation = 10 + numerical
    return calculation

print(plus(8))
>>> 18

ローカル変数とグローバル変数

ex.3において変数 'calculation' は、関数 'plus(numerical)' 内でのみ定義されている。このように、関数内でのみ利用可能な変数をローカル変数と呼ぶ。
また、プログラム全体で利用可能な変数をグローバル変数と呼ぶ。

# ex.4
numerical = 10
def local_numerical():
    numerical = 20
    print(numerical)

local_numerical()
>>> 20
numerical
>>> 10

# ex.5
numerical = 10
def global_numerical():
    global numerical

    plus_numerical = 20 + numerical
    print(plus_numerical)

global_numerical()
>>> 30
numerical
>>> 10

ex.4 で1行目の 'numerical = 10' はグローバル変数の定義で、3行目の 'numerical = 20' はローカル変数の定義である。
従って、2行目から4行目にかけて定義された関数 'local_numerical()' を呼び出した場合には、この関数内でのみ定義されているローカル変数が呼び出され、20と表示される。プログラム全体で定義されている2行目のnumericalを呼び出した場合には 、グローバル変数が呼び出され、10と表示される。

ex.5 では、3行目で 'global numerical' を宣言することで、グローバル変数の 'numerical ' に対して関数内で処理できる。
もし、'global numerical' を宣言しなかった場合には、5行目の処理でエラーとなる。これは関数 'global_numerical' 内で 'numerical' という変数が定義されていなかったことにより発生する。

環境

OS : windows 10(64 bit)
Python version : 3.8.2
テキストエディタ : VSCode

この記事が気に入ったらサポートをしてみませんか?