IndexError:字符串索引超出范围错误

时间:2016-03-12 22:36:31

标签: python-2.7 pygame

我正在尝试使用pygame制作地图,但我得到了 IndexError: string index out of range 每次启动程序时都会出错。

这是获取错误的一行:

中的return self.data[y][x]
def__getitem__(self, xy):
    x = xy[0]
    y = xy[1]
    return self.data[y][x]

当我将地图定义为

时,它有效
hallway_entrance_lilbrary =\
["xxxxx...........xxxxx",
 "xxxxx...........xxxxx",
 "xxxxx...........xxxxx",
 "xxxxx...........xxxxx",
 "xxxxx...........xxxxx",
 "xxxxx...........xxxxx",
 "xxxxx...........xxxxx",
 "xxxxx...........xxxxx",
 "xxxxx...........xxxxx",
 "xxxxx...........xxxxx",
 "xxxxx...........xxxxx",
 "xxxxx...........xxxxx",
 "xxxxx...........xxxxx",
 "xxxxx...........xxxxx",
 "xxxxx...........xxxxx",
 "xxxxx.....s.....xxxxx",]

其中x是墙,.是地砖,s是起始方格。

当我将地图更改为

时,错误开始显示
hallway_entrance_lilbrary =\
["xxxxxxx...xxxxxxx"
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xx....x...x....x",
 "xxxxxxx.s.xxxxxx",]

我尝试将新地图缩短,因此其长度与第一张相当,但仍然会生成错误。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

语法不正确

我看起来你在秒示例的第一行上缺少一个逗号。

  
hallway_entrance_lilbrary =\
["xxxxxxx...xxxxxxx" # <--- no comma?
 "xx....x...x....x",
 ...