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

まずは基本となる仕組みである
大さじか小さじか・何杯かを入力
→さじの大きさに合わせて1杯当たりのグラムをを取り出す
→杯数をかける

というプログラムを作ります。

今回は小麦粉の重さを表示させてみます。
まずは変数tsp・tbspにそれぞれ小麦粉の小さじ1杯当たりのグラム数・大さじ1杯当たりのグラム数を格納します。

>>> tsp = 3
>>> tbsp = 8

次に、大さじか小さじか・何杯かを入力させ、それらの値をそれぞれ変数kind・spoonに格納します。

>>> kind = input("大さじと小さじ、どっち?")
>>> spoon = int(input("何杯?"))

if文を用いて変数gramに求めたいグラム数を格納します。

>>> if kind == "小さじ":
>>>   gram = tsp * spoon
>>> elif kind == "大さじ":
>>>   gram = tbsp * spoon

最後に大さじ・小さじ表現をグラム表現に変換した結果を表示させます。

>>> print("小麦粉"+kind+ str(spoon)+"杯は "+str(gram)+"グラム")

計算から結果の表示までの一連のプログラムは今後何度も使うと思うので関数spoon_gram()として定義します。

>>> def spoon_gram():
...     kind = input("大さじと小さじ、どっち?")
...     spoon = int(input("何杯?"))
...     if kind == "小さじ":
...         gram = tsp * spoon
...     elif kind == "大さじ":
...         gram = tbsp * spoon
...     print("小麦粉"+kind+ str(spoon)+"杯は "+str(gram)+"グラム")

最終的なコードは以下の通りです。

>>> tsp = 3
>>> tbsp = 8
>>> def spoon_gram():
...     kind = input("大さじと小さじ、どっち?")
...     spoon = int(input("何杯?"))
...     if kind == "小さじ":
...         gram = tsp * spoon
...     elif kind == "大さじ":
...         gram = tbsp * spoon
...     print("小麦粉"+kind+ str(spoon)+"杯は "+str(gram)+"グラム")

これを実行し、関数spoon_gram()を呼び出してみると…

>>> spoon_gram()
大さじと小さじ、どっち?大さじ
# "大さじ"と入力
何杯?2
# 2と入力
小麦粉大さじ2杯は 16グラム

ちゃんと表示させることができました!
ちなみに小数を入力するとうまくいきません。

>>> spoon_gram()
大さじと小さじ、どっち?大さじ
何杯?1.5
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "<stdin>", line 3, in spoon_gram
ValueError: invalid literal for int() with base 10: '1.5'

つづく。

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