大さじ小さじとグラムを変換したい その5
前回でグラム→大さじ・小さじのプログラムは大体完成したので、今回からは大さじ・小さじ→グラムのプログラムを作っていこうと思います。
まあ前回までのコードを少し改変すればすぐにできます。
まずは入力をさせる部分。グラム→大さじ・小さじでは調味料の種類・大さじか小さじか・何杯分かを入力できるようにしましたが、大さじ・小さじ→グラムでは調味料の種類・何グラム分かだけを入力し、結果は大さじの場合・小さじの場合がともに表示されるようにします。
前回のコードはこんな感じ(関数名をstog()に変更しています)。
def stog():
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("数字を入力してね")
大さじ・小さじの部分は削除で、“何杯?”を”何グラム?”にすれば完成ですね。
def gtos():
seasoning = input("何測る?")
while seasoning != "塩" and "小麦粉" and "上白糖" and "グラニュー糖" and "ドライイースト":
print("塩・小麦粉・上白糖・グラニュー糖・ドライイーストから選んでね")
seasoning = input("何測る?")
while True:
try:
gram = int(input("何グラム?"))
break
except ValueError:
print("数字を入力してね")
つぎに計算部分。例として塩の部分はこんな感じにしました。
if seasoning == "塩":
tsp = 5
tbsp = 15
tspg = gram/tsp
tbspg = gram/tbsp
print(seasoning+str(gram)+"グラムは"+"小さじ"+str(tspg)+"杯"+"大さじ"+str(tbspg)+"杯")
このままだと結果が10.6666666杯とかになることもあるので、何桁まで表すかは次回考えてみます。
最終的に次のようなコードになりました。
def gtos():
seasoning = input("何測る?")
while seasoning != "塩" and "小麦粉" and "上白糖" and "グラニュー糖" and "ドライイースト":
print("塩・小麦粉・上白糖・グラニュー糖・ドライイーストから選んでね")
seasoning = input("何測る?")
while True:
try:
gram = int(input("何グラム?"))
break
except ValueError:
print("数字を入力してね")
if seasoning == "塩":
tsp = 5
tbsp = 15
tspg = gram/tsp
tbspg = gram/tbsp
print(seasoning++str(gram)"グラムは"+"小さじ"+str(tspg)+"杯"+"大さじ"+str(tbspg)+"杯")
elif seasoning == "小麦粉":
tsp = 3
tbsp = 8
tspg = gram/tsp
tbspg = gram/tbsp
print(seasoning++str(gram)"グラムは"+"小さじ"+str(tspg)+"杯"+"大さじ"+str(tbspg)+"杯")
elif seasoning == "上白糖":
tsp = 3
tbsp = 9
tspg = gram/tsp
tbspg = gram/tbsp
print(seasoning+str(gram)+"グラムは"+"小さじ"+str(tspg)+"杯"+"大さじ"+str(tbspg)+"杯")
elif seasoning == "グラニュー糖":
tsp = 4
tbsp = 12
tspg = gram/tsp
tbspg = gram/tbsp
print(seasoning+str(gram)+"グラムは"+"小さじ"+str(tspg)+"杯"+"大さじ"+str(tbspg)+"杯")
elif seasoning == "ドライイースト":
tsp = 4
tbsp = 12
tspg = gram/tsp
tbspg = gram/tbsp
print(seasoning+str(gram)+"グラムは"+"小さじ"+str(tspg)+"杯"+"大さじ"+str(tbspg)+"杯")
動かしてみると、
>>> gtos()
何測る?塩
何グラム?123
塩123グラムは小さじ24.6杯大さじ8.2杯
ちゃんと動きますね。
この記事が気に入ったらサポートをしてみませんか?