2012-08-02 66 views
0

我正在制作一个文本RPG,我需要一些帮助,我不完全确定如何解释。添加到Python中的字典。 Python文本RPG

我需要这样做,使用户可以输入像“检查关键”的东西,它会打印出“这是一个关键”。

我正在使用2个文件。

main.py engine.py

main.py需要能够为对象追加到字典中的文件engine.py

如果engine.py有

objects = { 

} 

和main.py具有

key = {'it's a key', 'key taken'} 

engine.objects.append(key) 

我的主回路应能为L ike

if choice[0] == 'examine': 
    if choice[1] == anything in objects: 
     print whatever object[0] 

如果这有什么意义,你可以指点我在正确的方向。编辑: 我不能附加到字典。

Traceback (most recent call last): 
    File "...\main.py", line 5, in <module> 
    engine.objects.append(key) 
AttributeError: 'dict' object has no attribute 'append' 

编辑2:对不起,在这样的菜鸟。 每当我键入“检查”没有第二paramiter它错误和关闭。我意识到为什么,但我不知道如何解决它。

+0

like * choice [1] in objects *?如果* choice [1] *包含在* objects *字典中用作键的字符串之一,这将返回True。不知道我是否理解正确,但... – BorrajaX 2012-08-02 22:18:13

+0

究竟是什么问题?它是否从'main.py'访问'engine.objects'? (如果是这样,只需使用'import engine'。) – tiwo 2012-08-02 22:19:30

回答

0

引擎对象应该是一个列表,而不是让您可以追加键那里,现在我不明白为什么你需要创建2页不同的文件,但我会做出一个小例子,所以也许这可以更好地指导你:

choices = {'what's your name': 'I am jorge beans', 'left': 'there is a door', 
       'punch': 'ouch!'} 

if user_choice in keys: 
    # this way you examine the key values in the choices dictionary so you 
    # don't need the objects list 
    print choices[user_choice] 

如果你指定更多一点你的问题我肯定会对我的答案更具体。祝你好运!

0

dict类中没有.append()方法。

要插入键/值对到字典中d

d[key] = value 

要检查d是否包含密钥,并获得相应的价值:

command, obj = "examine box".split() 
if command == 'examine': 
    if obj in d: 
     print d[obj] 

尽量避免可变全局变量,如engine.objects。你可以在一个类中封装对它的访问。

你可以构造你的程序,例如,基于cmd module from stdlib

+0

他正在创建'set's,而不是'dict's。 – 2012-08-02 22:47:55

+0

@KarlKnechtel:空'{}'创建一个字典。一个集合没有.append方法,它不支持索引。'key'变量的设置语法可能是一个事件。 – jfs 2012-08-02 22:54:39

+0

谢谢。但我回到了我的另一篇文章的问题。当我输入“检查”时,出现错误。 – user1564265 2012-08-03 00:36:11