Python文本游戏出现KeyError:'Sun Room'问题求助
KeyError: 'Sun Room' 原因解析
这个错误的核心原因是房间名称大小写不匹配,Python字典的键是严格区分大小写的:
- 在原
rooms字典定义中,阳光房的键是'Sun room'(注意room的首字母为小写r):'Sun room': {'item': 'Gun', 'North': 'Great Room', 'East': 'Garage'}, - 但Garage房间中指向西侧的房间名称写成了
'Sun Room'(Room首字母为大写R):'Garage': {'item': 'Shield', 'West': 'Sun Room'},
当你从Garage执行go west移动时,代码会把current_room设置为'Sun Room',但这个名称并不存在于rooms字典的键中。后续循环执行rooms[current_room].keys()时,自然会抛出KeyError: 'Sun Room'。
你尝试重命名Sun room但问题依旧,大概率是只修改了房间本身的键名,没同步修正Garage里的指向名称;而改成关联Kitchen后,Kitchen的名称在字典中完全匹配,因此不会触发错误。
修复方法
只需把Garage中的西侧房间名称改成和字典键一致的'Sun room'即可:
'Garage': {'item': 'Shield', 'West': 'Sun room'},
内容的提问来源于stack exchange,提问作者Joshua Pelkey
相关产品推荐
相关产品推荐

