2017-05-18 6 views
1

私は、ボーリングスタッフを自動化するつもりです。これは第5章の2番目のプロジェクトです。何らかの理由でアイテムが追加される関数を呼び出した後、辞書。これは私のコードです:リストアイテムから辞書に新しいキーを追加するときにエラーが発生する

def displayInventory(anInventory): 
    item_total = 0 
    print("Inventory: \n") 
    for i, j in anInventory.items(): 
     print(str(j) + " " + i) 
     item_total += j 
    print("\nTotal number of items: " + str(item_total)) 

def addToInventory(inventory, addedItems): 
    for i in addedItems: 
     if i in inventory: 
      inventory[i] += 1 
     else: 
      inventory[i] = 1 

inv = {'gold coin': 42, 'rope': 1} 
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby'] 
inv = addToInventory(inv, dragonLoot) 

displayInventory(inv) 

displayInventory関数はそれ自身で正常に動作しますので、私はaddToInventory機能に問題を絞り込むました。もし私がinv辞書の作成の直後にprintステートメントを追加すると、辞書が出力されます。ただし、addToInventory関数の呼び出しの直後にprintステートメントを追加すると、 "None"が表示されます。

私はこの機能がうまく機能していると確信していたので、私の間違いを指摘する助けに感謝します。ありがとう!

inv = addToInventory(inv, dragonLoot) 

代替簡単なメソッド呼び出しと割付:あなたは

addToInventory(inv, dragonLoot) 

答えて

2

はあなたのaddToInventory機能は、何も返しませんaddToInventoryから何も返しません。だからそれはNoneだ。

+0

[python]キューが私にとっては速すぎるようです。xD –

2

あなたはこのラインでなし値を代入しているので、

関連する問題