2012-08-02 62 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