1
コードを理解していけない:のPython 3のコードは、意図したとおりに動作しますが、私は、なぜ
inv = {'arrow': 12, 'gold coin': 42, 'rope': 1, 'torch': 6, 'dagger': 1}
def show_inv():
print('inventory:')
item_total = 0
for k, v in inv.items():
print(str(v)+ ' ' + (k))
item_total = item_total + v
print('total number of items: ' + str(item_total))
show_inv()
結果(予想通り):
在庫:
12が矢印
42金貨42
1ロープ
6項目のトーチ
1短剣
総数:62
が、どのよう
item_total = item_total + v
は私に正しい値の合計を与えません?
編集:なぜprint(str(v))だけでも、常に「ダガー」キーに値を渡しますか?ここ
合計を与えるために辞書の値を加算するだけです。 – Li357
各反復では、現在の項目の数を項目 'item_total + v'の項目の合計数に加算し、その更新された値を' item_total = ... 'に戻します。 – Aaron
' item_total'は 'item_total + v'に割り当てられています - 割り当ての右手側が最初に評価されてから割り当てが行われます。 – birryree