Python 为什么它总是说TypeError:';发电机&x27;调用预定义进程时,对象不可下标?
其名称为:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Python 为什么它总是说TypeError:';发电机&x27;调用预定义进程时,对象不可下标?,python,python-3.x,Python,Python 3.x,其名称为:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def randomise_Chests_Bandits (sign,xSize,ySize,grid,pX,pY) : import random x = random.randint(0,xSize-1) #get a random x coordinate y = random.randint(0,ySize-
def randomise_Chests_Bandits (sign,xSize,ySize,grid,pX,pY) :
import random
x = random.randint(0,xSize-1) #get a random x coordinate
y = random.randint(0,ySize-1) #get a random y coordinate
if (x == pX and y == pY) or (grid[x][y] != " "):
grid = randomise_Chests_Bandits(sign,xSize,ySize,grid,pX,pY)
else:
grid[x][y] = sign
return grid
为什么它总是说TypeError:“generator”对象在调用预定义进程时不能下标
for chestCount in range (0,chestCount):
grid = randomise_Chests_Bandits ('0',xSize,ySize,grid,pX,pY)
回溯(最近一次呼叫最后一次):
文件“E:\AQA游戏最终编码与帮助.py”,第271行,中
整体菜单()
文件“E:\AQA游戏最终编码与帮助.py”,第264行,在总菜单中
grid=添加_Chests_Bandits(grid、chestCount、banditCount、xSize、ySize、pX、pY)
文件“E:\AQA游戏最终编码与帮助.py”,第223行,inadd_Chests_Bandits
网格=随机化\u箱子\u土匪('0',x大小,y大小,网格,pX,pY)
文件“E:\AQA游戏最终编码与帮助.py”,第215行,在随机化的箱子里
如果(x==pX和y==pY)或(网格[x][y]!=”):
TypeError:“生成器”对象不可下标
这是我对你问题的解释:
Traceback (most recent call last):
File "E:\AQA Game Final Coding With Help.py", line 271, in <module>
Overall_Menu ()
File "E:\AQA Game Final Coding With Help.py", line 264, in Overall_Menu
grid = add_Chests_Bandits(grid,chestCount,banditCount,xSize,ySize,pX,pY)
File "E:\AQA Game Final Coding With Help.py", line 223, inadd_Chests_Bandits
grid = randomise_Chests_Bandits ('0',xSize,ySize,grid,pX,pY)
File "E:\AQA Game Final Coding With Help.py", line 215, in randomise_Chests_Bandits
if (x == pX and y == pY) or (grid[x][y] != " "):
TypeError: 'generator' object is not subscriptable
可能您忘记初始化数组,以下是输出:
def randomise_Chests_Bandits (sign,xSize,ySize,grid,pX,pY) :
import random
x = random.randint(0,xSize-1) #get a random x coordinate
y = random.randint(0,ySize-1) #get a random y coordinate
if (x == pX and y == pY) or (grid[x][y] != " "):
grid = randomise_Chests_Bandits(sign,xSize,ySize,grid,pX,pY)
else:
grid[x][y] = sign
return grid
chestCount = 10
grid = [[" "]*20]*20
for chestCount in range (0,chestCount):
grid = randomise_Chests_Bandits ('0',20,20,grid,10,10)
print(grid)
您能否为异常添加完整的回溯以及初始输入?例如,
grid
是什么?看起来grid
是一个生成器,但如果没有回溯,我无法确定。似乎@francesco是对的,您可能无法初始化网格,这就是为什么会出现错误。
[[' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' '], [' ', '0', '0', '0', ' ', '0', '0', '0', ' ', ' ', '0', ' ', '0', ' ', ' ', '0', ' ', ' ', '0', ' ']]