サバくん
ある複数の処理をまとめて使いたい時があると思います。そんな時便利なのは関数です。
目次
関数とはいくつかの処理をひとまとめにしたものです。ひとまとめにすることで何回も同じコードを記述しないでもよくなりますし、プログラムの解釈もしやすくなります。
例えば、「ペットボトルの水を飲む」といった指令を出す際にいちいち「ペットボトルの蓋を開ける」→「ペットボトルを口に運ぶ」→「水を飲み込む」といった細かい処理で指令すると解釈しにくいですよね?
「ペットボトルの蓋を開ける」→「ペットボトルを口に運ぶ」→「水を飲み込む」という複数の処理をひとまとめにすることで解釈がしやすくなるのに似ています(系列動作にも似てますね)
関数の全体的な構造は以下の図に示すとおり、
- 引数を受け取り、
- 関数でまとめた処理を行ったのち
- 結果(戻り値)を返します。
ちなみに引数や戻り値を省略することも可能です。
関数の形は
def 関数名(引数1, 引数2, …):
␣␣␣␣・・・
となっており、複数の処理を関数名でまとめることができます。実際に関数を記述したものが下のコードです。
def func1():
ans = 1+2
print(ans)
func1()
# 3
func1という関数の中で
- 1+2をansという変数に格納する処理
- ansを出力する処理
をまとめています。
関数にreturnを加えることで結果を返すことができます。この返ってくる結果のことを戻り値ともいいます。
def func2():
ans = 1+2
return ans
print(func2())
print(func2()+2)
# 3
# 5
func2という関数の中では
- 1+2をansという変数に格納する処理
- ansを戻り値とする処理
がまとめられています。なのでfunc2()+2を行うと3+2=5なので5と出力されます。
関数に渡す値を引数と言います。引数を渡すと関数ないでその値を使用することができます。
def func3(a, b):
ans = a+b
return ans
print(func3(1, 3))
print(func2(a=1, b=6))
# 4
# 7
また引数は初期値を設定することもできます。
def func4(a=1, b=2):
ans = a+b
return ans
print(func4())
print(func4(1, 3))
print(func4(a=1, b=6))
# 3
# 4
# 7
def bmi(h, w):
return w/(h/100)**2
def bmiclass(bmi):
if bmi < 18.5:
k = "低体重"
elif bmi < 25:
k = "普通体重"
elif bmi < 30:
k = "肥満(1度)"
elif bmi < 35:
k = "肥満(2度)"
elif bmi < 40:
k = "肥満(3度)"
else:
k = "肥満(4度)"
print(f"あなたは{k}です。")
条件の分岐(if文)や比較の方法(比較演算子)を忘れてた人は以下の記事を参考にしてください
Pythonの基本文法(条件分岐, if, else, elif) Pythonで比較演算子と論理演算子を使ってみよう