ユーザーは化学式を入力します。たとえばCO2OHC5H18COO
、またはそのようなもの。C = 12.01
次に、出力は、 、H = 1.008
、が与えられた分子量になりますO = 16
。私はこれまでのところこれを持っています:
while(True):
chemical_formula = input("Enter chemical formula, or enter to quit: ")
length = len(chemical_formula)
if chemical_formula == "":
break
else:
char = list(chemical_formula)
length = len(char)
for i in char:
if i == "C":
c = 12.0107
elif i == "H":
h = 1.00794
elif i == "O":
o = 15.9994
else:
if char[i-1] == "C":
print(float(i)*c)
elif char[i-1] == "H":
print(float(i)*h)
elif char[i-1] == "O":
print(float(i)*o)
しかし、forループで前の要素を取得するために使用できない理由がわからないので(i-1)
、それを数値に掛けることができます。文字列の前の要素を取得する他の方法はありますか? それとも、この問題にアプローチする別の方法がありますか?