Python - .append在if语句中不起作用

时间:2013-11-10 01:22:41

标签: python list append

我正在制作一个基于文本的游戏,但是我遇到了一个附加列表的问题。

您可以执行的启动命令位于列表中。

room1_commands = ['help', 'look']

如果他们使用'look'命令就会启动它。

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

据我所知,应该在命令列表中添加壁炉,但事实并非如此。

我注意到如果我添加......

print (room1_commands)

在附加后它显示它附加,但如果我没有缩进它所以它不在if语句中它只打印出'help'和'look'

这是整个语句(包括打印出命令列表的帮助语句)

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()

1 个答案:

答案 0 :(得分: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()