【发布时间】:2016-02-17 21:42:54
【问题描述】:
我有点不知所措。我正在初始化字典中的字典,它工作正常,直到我想检查 while 语句中定义的值。
我收到“屏幕宽度”的关键错误。 我的第一次尝试是通过将整个字典写入 .txt 文件,然后是我在此期间访问的子字典部分本身来查看变量是否被意外修改......所有这些都有效并得到了我预期的结果但仍然在我发现关键错误的时候。
初始化:
def __init__(self):
self.Data = {
'Configuration': { 'MaxMapWidth': 256, 'MaxMapHeight': 256,
'TileWidth': 1216, 'TileHeight': 694,
'ScreenWidth': 1366, 'ScreenHeight': 768,
'MaxBiewDistance': 10 },
'Map': {},
'Tiles': {},
'Player': {
'Position': { 'MapName': None, 'X': 1, 'Y': 1, 'Direction': 0 }# in degree }
}
}
方法:
def MyDo(self):
f = open("e:\\test\\test.txt", "w")
for key in self.Data:
f.write(key + "\n")
for subkey in self.Data[key]:
f.write(" " + subkey + "\n")
if ("Configuration" in key):
f.write(" " + str(self.Data[key][subkey]) + "\n");
rayNumber = 0
f.write(str(self.Data['Configuration']['ScreenWidth']))
while (rayNumber < self.Data['Configuration']['Screenwidth']):
#.... do my thing
rayNumber = rayNumber + 1
txt文件中的值:
Map
Forest
Tiles
tile003
tile002
tile001
tile007
tile006
tile005
Configuration
ScreenHeight
768
ScreenWidth
1366
MaxMapWidth
256
TileHeight
694
TileWidth
1216
MaxBiewDistance
10
MaxMapHeight
256
Player
Position
1366
除了关键错误,我想说这一切都按预期工作。所以我在这里的问题是是什么导致了这个关键错误(特别是因为它似乎都是正确的并且密钥存在)?
【问题讨论】:
-
可能是因为
'ScreenWidth' != 'Screenwidth'(区分大小写!)。请参阅 while 循环行。 -
tnx 读了好几个小时-.- 我看了所有的发音,....但不是大小写。 tnx
-
顺便说一句,很高兴知道为什么 -1 (从我所看到的问题很清楚,它就像被忽略的大小写字母一样愚蠢,不应该奖励 - 就我而言'我知道因此很高兴知道为什么)
标签: python dictionary