pythonを学ぶ上で、避けては通れない関数について学ぶ。
1.基本編(再利用可能な関数)
関数の構造は次のようになっており、def 関数名(引数):と表される。
関数として定義しておくと、後からいつでも再利用が可能となるため、同じような処理が続く場合などは関数にすることを検討すること。
関数内に関数を書くことも可能であり、global変数やlocal変数という概念も出てくるが、それについては後ほどまとめることにする。
# "Hello World"と出力する関数(引数なし)
def hello():
print("Hello World")
say_hello = hello()
# 出力 ⇒ Hello World
# 引数の計算結果を出力する関数(引数あり)
def add_calc(a,b):
c = a + b
print(c)
return c
result = add_calc(1,1)
# 出力 ⇒ 2
2.lambda(無名関数)
計算の途中で1回だけ使いたいなど再利用をしない場合については無名関数を用いることで、コードが1行になりシンプルな記述にすることができる。
lambda関数を単体で使うよりは、map、fitter、sortedといった文法と組み合わせて使うことが一般的である。
# filter関数とlambda関数(無名関数)の組み合わせ
def list_append():
num_list = [i for i in range(1, 6)]
return num_list
numbers = list_append()
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(odd_numbers)
# 出力 ⇒ [1,3,5]
3.まとめ
1.まとまった処理は関数化しておくことで、可読性、保守性の向上につながる。
(いわゆるコンポーネント化という概念)
2.lambda は def による関数の定義を一行にまとめることができる
3.基本的には他の関数・メソッドなどと組み合わせて用いる
4.def の代わりにそのまま使うことは推奨されていない