LEVEL 5 ・ 関数 / Lesson 09

自分専用の処理を作る

毎回同じ計算を書くのをやめて、名前を付けた「自分専用の関数」にまとめます。

目安 15分 ・ インストール不要

このレッスンが終わったら

「関数は、よく使う処理に名前を付けてまとめたもの。材料を渡すと、結果が返ってくる」と言える。

STEP 1

できることを見る

商品の金額から、消費税を計算する場面を考えてみましょう。商品が何十種類もあると、同じ「× 0.1」を何十回も書くことになります。

そこで、「消費税を計算する」という処理に名前を付けて、1か所にまとめておくことができます。

def calculate_tax(price):
    return price * 0.1

これが「自分専用の処理」です。ExcelでいえばSUMやIFのような関数を、自分で作るイメージです。

STEP 2

動かしてみる

自分専用の「税額を計算する」を作って使うコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

100.0 と 500.0 が表示されましたか。同じ計算を2回書かずに、金額だけを変えて使い回せました。

STEP 3

1行ずつ読む

1行目を、部品に分けて見てみましょう。

def calculate_tax(price): を分解する
defこれから自分専用の処理を作ります
calculate_taxその処理の名前
(price)受け取る材料(金額)
:ここから中身
1行ずつ日本語にしてみる
def calculate_tax(price):「calculate_tax」という名前の処理を作る。材料として金額を1つ受け取り、「price」と呼ぶ
return price * 0.1priceに0.1を掛けた結果を、答えとして返す
print(calculate_tax(1000))1000を材料にして calculate_tax を使い、返ってきた答えを表示する

日本語にすると

「税額を計算する」という処理を作っておく。金額を渡すと、その10%を答えとして返してくれる。
  1. 材料1000
  2. calculate_tax× 0.1 を計算する
  3. 結果100.0
材料を渡すと、結果が返ってくる。ExcelのSUMやIFと同じ仕組みです。
STEP 4

1か所だけ変える

① 作るだけでは、何も起きない。 def の部分だけを実行してみましょう。

作るだけだと?コードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

何も表示されません。作っただけで、使っていないからです。

② ルールを1か所だけ直す。 0.1 を 0.08(軽減税率の8%)に変えると、使っている全部の場所で、計算が変わります。

税率を変えてみようコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

もし関数を使わずに、あちこちに * 0.1 を書いていたら、全部を探して直す必要がありました。

③ 結果を、別の計算に使う。 返ってきた答えは、ほかの計算にも使えます。

答えを足し算に使うコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

④ return を書き忘れると? 答えを返す return を消してみます。

return を忘れたらコードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます

None(何もない)と表示されます。計算はしたけれど、答えを返していないからです。エラーにはならないので、「結果が None になった」ときは、return を確認すると覚えておくと、あとで役に立ちます。

STEP 5

自分で書く

お題① 材料を2倍にして返す関数 double を作り、21 を渡した結果を表示してください。

お題①:2倍にする関数コードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
ヒントを見る

def double(x): の次の行に、スペース4つで return x * 2 と書きます。

答えの例を見る
def double(x):
  return x * 2

print(double(21))

お題② 金額に消費税10%を足した「税込み金額」を返す関数 add_tax を作り、5000 を渡した結果を表示してください。

お題②:税込み金額を返す関数コードは書き換えられます
Ctrl / ⌘ + Enter でも実行
結果
▶ 実行を押すと、ここに結果が出ます
ヒントを見る

return price + price * 0.1 と書きます。

答えの例を見る
def add_tax(price):
  return price + price * 0.1

print(add_tax(5000))
STEP 6

仕事ならどう使う?