2017-09-08 19 views
-1

私は実際に私が辞書が必要であるかどうかもわかりません。それ以外に何ができるか分かりません。基本的に私は複数の値でユーザー入力を乗算する必要があります。ここで私が働いているものがあります。辞書の複数の値でユーザー入力を乗算するにはどうすればよいですか?

You have used .. 
    16.5 loaves of bread 
    1.3 lbs of Salami 
    7.5 lbs of Veges 
    142 slices of Cheese 
    7.4 lbs of Turkey 

編集:

SmallItalian = {"Loaf of bread": .5, "Salami": .3, "Vegetables": .2, "Slices of cheese": 4} 
    s_italian = input("How many small Italians were sold?") 

は、私は、この出力のような何かを受け取るために、これらを乗算する必要があるので、私は今、私の辞書で私の入力を掛けない方法

for amount in SmallItalian.values(): 
     print(SmallItalian) 

を持っています値?

+0

探しているものであるなら、私に知らせてやる値

のですか? –

+0

辞書はここで使うのにかなり妥当な構造のようです。私はあなたがすでに入力を持っていると仮定します。したがって、次のステップは、辞書と複数の出力をループすることです〜! – birryree

答えて

0

辞書、その値、または両方の組み合わせ(その項目)で辞書をループすることができます。単に

for ingredient in Smallitalian.keys(): 

または

for amount in Smallitalian.values(): 

または

for ingredient, amount in Smallitalian.items(): 

を使用して、ループ内で対応する変数を使用します。その後、それは簡単になるはずです。

この使用例では辞書を使用しても問題ありません。

0

辞書のすべての項目に、明確にしないのと同じ番号を掛けるかどうかはわかりません。あなたはそれを達成したい場合は、ここではトリックを行います別の方法です:

SmallItalian = {"Loaf of bread": .5, "Salami": .3, "Vegetables": .2, "Slices of cheese": 4} 
value = input("How many small Italians were sold? ") 
print "You have used..." 
for item in SmallItalian: 
    SmallItalian[item] = SmallItalian[item] * value 
    print "{} {}".format(item, SmallItalian[item]) 
+0

エラーが発生しました。 "TypeError:タイプ 'dict'の非int型のsepquenceを乗算できません"これを修正する方法がわかりません。 –

+0

@MeganMorris、コードを更新しました。もう一度チェック。 – George

0

何らかの理由であなたがSmallItalianを維持する必要がある場合、あなたはこれを試すことができます:)

SmallItalian = {"Loaf of bread": .5, "Salami": .3, "Vegetables": .2, "Slices of cheese": 4} 

outputMapping = {"Loaf of bread": "loaves of bread", 
       "Salami": "lbs of Salami", 
       "Vegetables": "lbs of Veges", 
       "Slices of cheese": "slices of Cheese"} 


# need to int() it as input by default is a string 
s_italian = int(input("How many small Italians were sold?")) 

print("You have used ..") 
# go through SmallItalian 
for item, qty in SmallItalian.items(): 
    print(round(s_italian*qty,1), outputMapping[item]) 
    # round to 1d.p. 

出力からPythonシェル

How many small Italians were sold?6 
You have used .. 
3.0 loaves of bread 
1.8 lbs of Salami 
1.2 lbs of Veges 
24 slices of Cheese 
>>> 

for item, qty in SmallItalian.items():itemがキーとですSmallItalian辞書、を反復処理しますは、これはあなたがあなたがこれまでに試してみました何:)

関連する問題