関数の定義 の最初の例では、金額の計算を関数ではなく、
momo = input("ももは何個買いますか?") # ももの個数を入力する
num_momo = int(momo) # 入力した文字列を、整数値に変換する
mikan = input("みかんは何個買いますか?") # みかんの個数を入力する
num_mikan = int(mikan) # 入力した文字列を、整数値に変換する
total_momo = num_momo * 100
total_mikan = num_mikan * 40
total = total_momo + total_mikan
print("もも", num_momo, "個と、みかん", num_mikan, "個で、", total, "円です")
のように、全体の処理の一部として記述していました。
この処理を修正して、計算を行う処理だけを独立した関数に分割し、次のように書けるようになりました。
total = fruit_price(num_momo, num_mikan)
関数を使わないバージョンでは、input()
を使わずに、例えばもも10個とみかん20個の組み合わせの金額を求めるときには、プログラム全体を書きなおす必要があります。
しかし、このように計算処理を関数にしたことで、この計算を条件を変えて何度でも簡単に実行できるようになりました。計算が必要なときには、定義済みの関数 fruit_price()
を利用して
fruit_price(2, 3)
や
fruit_price(10, 20)
のように、簡単に呼び出して結果を得ることができます。
また、ももが値上げされた場合など、なんらかの処理の変更が必要になったばあい、最初の例では計算処理の部分をすべて変更しなければなりません。
しかし、すべての計算は関数で行うようになっていれば、プログラムの修正が必要なのは fruit_price()
のみで、fruit_price()
を利用している部分は修正せずに再実行するだけで済ますことができます。次の関数は、ももの値段を100円から200円に修正してから計算しています。
In [26]:
def fruit_price(number_of_momo, number_of_mimkan):
total_momo = number_of_momo * 200
total_mikan = number_of_mimkan * 40
total = total_momo + total_mikan
return total
total = fruit_price(5, 10)
print("もも 5個と、みかん 10個で、", total, "円です")