2017-04-15 1 views
0

私は最近、難しい方法でpythonを学ぶ方法を始めました。私は自分のテキストアドベンチャーゲームをデザインするエクササイズ36に入っています。私は、最後の部屋の上司に後で使用されるアイテムを収集する別の部屋をユーザーが利用することを望んでいました。しかし、部屋を変更したときに同じリストに追加し続ける方法を私は理解できません。これは私がその部分のために、これまで持っているものです...私はあなただけの周りにいくつかの行を入れ替え、近くにいると思うユーザー入力からさまざまな機能を通してリストを構築する

def add_item(): 
    backpack = [] 
    i = 0 
    while 1: 
     i += 1 
     item = raw_input(" > ") 
     if item == '': 
      break 
     backpack.append(item) 

     print "\nAh, the %s, let us hope this serves you well." % item 
     print "This is the inventory you have acquired so far..." 
     print backpack 

def dizzygas_hallway(): 
    print "If so which item do you choose? (cloak or pendant)" 
    add_item() 

def dark_laboratory(): 
    print "Which item do you take? (book, potion or sword)\n" 
    add_item() 
    print "You exit the only door in sight..." 
dizzygas_hallway() 
+3

FWIWにコーディングすることを学ぶならば、それも良いだろう、けれども

backpack = [] def someFunction(): global backpack print("Some Text") backpack.append("something") def printBackpack(): print(backpack) 

、SO Pythonのチャットルームの常連は​​http://sopython.com/wiki/LPTHW_Complaints([LPTHWはお勧めしません] )。それがうまくいくなら、それは素晴らしいことですが、この本にはいくつかの問題があることに注意してください。また、Python 2は2020年にEnd Of Lifeに到達する予定ですので、Python 2をレガシーコードで作業する必要がない限り、Python 3を習得してください。 –

+0

情報ありがとうございます!非常に感謝しています –

答えて

1

(私が説明テキストを切り取ります)。それ以外の場合は、アイテムを追加するたびに、新しい空のリストを作成します。

backpack = [] # Define outside of function 

def add_item(): 
    global backpack # Use global variable (this line isn't 'necessary', though) 
+2

あなたは 'backpack'に変更を加えているだけなので、ここに' global'は必要ありません。 –

+0

真。しかし、それが可能であることを説明するために傷つけません –

+1

Hmmm。私は 'global'指令の使用を避けようとしています。読者がグローバルを変更していることを読者に警告していると思いますが、グローバルなステートメントが表示されたら、当然、割り当てが行われていると私は想定しています。 :) –

0

globalは、リストを操作する機能で使用できます。あなたはOOP

+2

私の答えと同じコメント...グローバルは必須ではありません –

関連する問題