2016-10-25 10 views
0

悪いタイトルで申し訳ありませんが、私はタイトルだけで何をしたいのかよく説明できませんでした。私はコーディングも初めてです。しかし、私は基本的に単純な化合物の質量を計算する関数を定義しようとしています。化学式は文字列として与えられ、モル数が与えられます。それはあなたがまた、対応する要素の要素とモル質量のリストである定義された変数を与えられている。このPython - リスト内の複数の要素を検索して値を格納するループを作成するにはどうすればよいですか?

chemicalMass(chemicalFormula, numMoles)

のようになります。両方の元素の位置および対応するモル質量は、互いに等しくなければならないものである。

elements = ["H", "B", "C"] 
molarMasses = [1.00794, 10.811, 12.0107] 

H = 1.00794、B = 10.811、など。

elements = ["H", "B", "C"] 
    molarMasses = [1.00794, 10.811, 12.0107] 

    def chemicalMass(chemicalFormula, numMoles) 
    chemicalFormula = tuple(chemicalFormula) 

print(chemicalMass('HBC', 2) 

これは、私の知る限り得ているようですが、私は、私は単一でそれを破るために、化学式にtupleを使用する必要がありますと思いました文字。しかし、今私はどのように "要素"リストの化学式の各文字を探してリストの化学式から要素の各位置を格納し、対応するモル質量にリストの位置を一致させるためのループを作るか分かりませんそれらのすべてを最後に追加して、numMolesで乗算します。

答えて

0

私はこのようなデータを格納するために辞書を使用します。

elements = { 
    'H': 1.00794, 
    'B': 10.811, 
    'C': 12.0107 
} 

次に、あなたのchemicalMass関数はのような単純なものが考えられます。

def chemicalMass(element, mass): 
    return elements[element]*mass 
+0

私はループでリストの使用をしなければなりませんさそれを行う方法がありますか?私は辞書やそれ以外のものについては学んでいない。 – Langfao

関連する問題