私はクラスの簡単な食料品リストに取り組んでいます。最初のステップでは、ユーザーからの入力で空の辞書とリストを作成します。すべての食料品は辞書(grocery_item {})に入り、すべての辞書がリスト(grocery_history)に追加されます。辞書の値が「定義されていません」Python
私のスクリプトは、現在、次のようになります。
grocery_item = {}
grocery_history = []
stop = 'go'
while stop == 'go' or stop == 'c':
item_name = input("Item name: \n")
quantitiy = int(input("Quantitiy purchased:\n"))
cost = float(input("Price per item:\n"))
grocery_item.update({'name' : item_name, 'number' : quantitiy, 'price' :
cost})
grocery_history.append(grocery_item)
stop = input("Would you like to enter another item?\n Type 'c' for continue
or 'q' to quite:\n")
私はこの時点でgrocery_history印刷する場合、それは私が意図したとおりに辞書のリストを出力します。食料品リストの次のステップでは、アイテムの総計を見つけようとしています。しかし、各項目の個々の値を見つけようとするときに、forループを使用してリスト内の各辞書にアクセスすると、その食料品の辞書エントリを表示したにもかかわらず、キーが定義されていないというエラーが表示されます。のキーの値がありました。
このセクションのための私のスクリプトは次のようになります。
grand_total = 0
for item in grocery_history:
I = 0
for price in item:
item_total = number * price
grand_total += item_total
print(number + name + '@' + '$' + price + 'ea' + '$' + round(item_total,2))
item_total = 0
I += 1
print('$' + round(grand_total,2))
それは私がキーのいずれかを使用しようと最初の行であるため、エラーが、私はITEM_TOTALを見つけようとしていますしたラインのためであります。私はgrocery_item(数字)/ grocery_item(価格)としてキーを書き直そうとしましたが、同じエラーメッセージが表示されます。
私は何か助けていただきありがとうございます!
これはPython辞書の仕組みではありません。 – anonymoose
こんにちは!あなたの2番目のセクションでは、各 'item'は辞書(食料雑貨品)です、いいえ?もしそうなら、2番目の 'for'ループは必要ありません。 item ['price'] 'でアイテムの価格にアクセスします。 –
'item'を反復処理しないでください。例えば、' item ['price'] 'や' item ['name'] 'などに直接アクセスしてください。 –