2013-11-10 3 views
-2

텍스트 기반 게임을 만들고 있지만 목록을 추가하는 데 문제가 있습니다.Python - .append가 if 문에서 작동하지 않습니다.

시작할 수있는 명령은 목록에 있습니다.

room1_commands = ['help', 'look'] 

'look'명령을 사용하는 경우이 명령을 실행합니다.

if ask == 'look': 
    print ('You see a fireplace.') 
    room1_commands.append('fireplace') 

내 지식으로는 벽난로를 명령 목록에 추가해야하지만 그렇지 않습니다.

내가 추가 할 경우 ...

print (room1_commands) 

가 그것을 보여 APPEND가 추가 직후 것으로 나타났습니다,하지만 난 그것을 들여 쓰기를하지 않는 경우는 if 문 안에 앉아 있지 않도록 그것은 단지 , 이것은 재귀 함수 때마다 '도움'과 '모양'

이 (명령 목록을 출력 도움 문 포함) 전체 문입니다

def room1(): 
    ask = input() 

    room1_commands = ['help', 'look'] 

    if ask == 'help': 
     print ('Usable Commands') 
     print (room1_commands) 
     room1() 

    elif ask == 'look': 
     print ('You see a fireplace') 
     room1_commands.append('fireplace') 
     room1() 
+3

그것은 않습니다, 코드를 잘 배치 작품으로. 그러나 'ask'가 정확히 'look'과 동일 할 때만. 메시지가 전혀 인쇄되지 않습니까? –

+0

저를 위해 일하십시오 : http://codepad.org/BT0Mh9c9 어쩌면'ask == 'look \ n'' 또는 무언가? – Lynn

+1

'room1_commands'로 무엇을하고 있습니까? –

답변

1

출력합니다 room1이 호출되면 room1_commands['help', 'look']으로 다시 설정됩니다. 이 문제를 해결하려면, 당신은 다음과 같이 함수의 외부에 room1_commands = ['help', 'look']을 이동해야합니다 :

room1_commands = ['help', 'look'] 

def room1(): 
    ask = input() 

    if ask == 'help': 
     print ('Usable Commands') 
     print (room1_commands) 
     room1() 

    elif ask == 'look': 
     print ('You see a fireplace') 
     room1_commands.append('fireplace') 
     room1() 
+0

좋습니다. 감사 :) – user2975228

관련 문제