大さじ小さじとグラムを変換したい その7

大さじ・小さじ→グラムとグラム→大さじ・小さじの変換を行うための関数がそろったので、これらをまとめます。

全体の関数名はunitchange()として、どちらの変換を行うかを入力させます。このときナンバリングした選択肢を表示し、数字のみを入力してもらうようにします。入力された数字は変数modeに格納します。

while True:
           try:
               mode = int(input("""どうする?
               1.大さじ・小さじをグラムに
               2.グラムを大さじ・小さじに"""))
               break
           except ValueError:
               print("1か2を入力してね")

modeが1か2かで場合分けをして、それぞれの関数を呼び出します。

if mode == 1:
       stog()
   elif mode == 2:
       gtos()

最終的なコードはこんな感じ。(関数gtos()及びstog()は過去の記事を参照してください。)

def unitchange():
   def stog():
       # 省略
   def gtos():
       # 省略
   while True:
           try:
               mode = int(input("""どうする?
               1.大さじ・小さじをグラムに
               2.グラムを大さじ・小さじに"""))
               break
           except ValueError:
               print("1か2を入力してね")
   if mode == 1:
       stog()
   elif mode == 2:
       gtos()

これを実行してみると…

>>> unitchange()
どうする?
               1.大さじ・小さじをグラムに
               2.グラムを大さじ・小さじに1
何測る?塩
大さじと小さじ、どっち?大さじ
何杯?2
塩大さじ2杯は30グラム
>>> unitchange()
どうする?
               1.大さじ・小さじをグラムに
               2.グラムを大さじ・小さじに2
何測る?塩
何グラム?123123グラムは大さじ8.2

ちゃんと予想通りに動かせています!

「こういうのが作れればいいな」みたいな自分のアイデアが形になるのはやはりうれしいものですね。

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