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

今回は変換できる調味料に上白糖・グラニュー糖・ドライイーストを追加し、また想定していない入力がされたときに再入力を求めることができるようにしてみました。

調味料の追加は塩や小麦粉の場合のコードを転用しました。

...     elif seasoning == "上白糖":
...         tsp = 3
...         tbsp = 9
...         if kind == "小さじ":
...             gram = tsp * spoon
...         elif kind == "大さじ":
...             gram = tbsp * spoon
...         print(seasoning+kind+ str(spoon)+"杯は"+str(gram)+"グラム")
...     elif seasoning == "グラニュー糖":
...         tsp = 4
...         tbsp = 12
...         if kind == "小さじ":
...             gram = tsp * spoon
...         elif kind == "大さじ":
...             gram = tbsp * spoon
...         print(seasoning+kind+ str(spoon)+"杯は"+str(gram)+"グラム")
...     elif seasoning == "ドライイースト":
...         tsp = 4
...         tbsp = 12
...         if kind == "小さじ":
...             gram = tsp * spoon
...         elif kind == "大さじ":
...             gram = tbsp * spoon
...         print(seasoning+kind+ str(spoon)+"杯は"+str(gram)+"グラム")

次に再入力を求めるコードですが、調味料と大さじ・小さじはwhileループを用いて作ってみました。

...     seasoning = input("何測る?")
...     while seasoning != "塩" and "小麦粉" and "上白糖" and "グラニュー糖" and "ドライイースト":
# 変数seasoningに上の5つの入力内容が格納されない限りはずっとはたらく
...         print("塩・小麦粉・上白糖・グラニュー糖・ドライイーストから選んでね")
...         seasoning = input("何測る?")

...     kind = input("大さじと小さじ、どっち?")
...     while kind != "大さじ" and "小さじ":
...         print("大さじか小さじか選んでね")
...         kind = input("大さじと小さじ、どっち?")

杯数については例外処理を使ってみました。

...     while True:
...         try:
...             spoon = int(input("何杯?"))
...             break
...         except ValueError:
...             print("数字を入力してね")

最終的なコードはこちらです。

>>> def spoon_gram():
...     seasoning = input("何測る?")
...     while seasoning != "塩" and "小麦粉" and "上白糖" and "グラニュー糖" and "ドライイースト":
...         print("塩・小麦粉・上白糖・グラニュー糖・ドライイーストから選んでね")
...         seasoning = input("何測る?")
...     kind = input("大さじと小さじ、どっち?")
...     while kind != "大さじ" and "小さじ":
...         print("大さじか小さじか選んでね")
...         kind = input("大さじと小さじ、どっち?")
...     while True:
...         try:
...             spoon = int(input("何杯?"))
...             break
...         except ValueError:
...             print("数字を入力してね")
...     if seasoning == "塩":
...         tsp = 5
...         tbsp = 15
...         if kind == "小さじ":
...             gram = tsp * spoon
...         elif kind == "大さじ":
...             gram = tbsp * spoon
...         print(seasoning+kind+ str(spoon)+"杯は"+str(gram)+"グラム")
...     elif seasoning == "小麦粉":
...         tsp = 3
...         tbsp = 8
...         if kind == "小さじ":
...             gram = tsp * spoon
...         elif kind == "大さじ":
...             gram = tbsp * spoon
...         print(seasoning+kind+ str(spoon)+"杯は"+str(gram)+"グラム")
...     elif seasoning == "上白糖":
...         tsp = 3
...         tbsp = 9
...         if kind == "小さじ":
...             gram = tsp * spoon
...         elif kind == "大さじ":
...             gram = tbsp * spoon
...         print(seasoning+kind+ str(spoon)+"杯は"+str(gram)+"グラム")
...     elif seasoning == "グラニュー糖":
...         tsp = 4
...         tbsp = 12
...         if kind == "小さじ":
...             gram = tsp * spoon
...         elif kind == "大さじ":
...             gram = tbsp * spoon
...         print(seasoning+kind+ str(spoon)+"杯は"+str(gram)+"グラム")
...     elif seasoning == "ドライイースト":
...         tsp = 4
...         tbsp = 12
...         if kind == "小さじ":
...             gram = tsp * spoon
...         elif kind == "大さじ":
...             gram = tbsp * spoon
...         print(seasoning+kind+ str(spoon)+"杯は"+str(gram)+"グラム")

動かしてみると…

>>> spoon_gram()
何測る?しお
塩・小麦粉・上白糖・グラニュー糖・ドライイーストから選んでね
何測る?塩
大さじと小さじ、どっち?おおさじ
大さじか小さじか選んでね
大さじと小さじ、どっち?大さじ
何杯?2杯
数字を入力してね
何杯?2
塩大さじ2杯は30グラム

ちゃんと再入力を求めていますね。

つづく。


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