当我运行此代码时:
mreza = np.zeros((9,9))
mrezanew = np.zeros((9,9))
mreza[4, 3] = 1
mreza[3, 3] = 1
mreza[3, 4] = 1
mreza[5, 4] = 1
mreza[3, 5] = 1
print(mreza)
for x in range(1,8,1):
for y in range(1,8,1):
vsota = mreza[x - 1, y - 1] + mreza[x, y - 1] + mreza[x + 1, y - 1] + mreza[x - 1, y] + mreza[x + 1, y] + mreza[x - 1, y + 1] + mreza[x, y + 1] + mreza[x + 1, y + 1]
if vsota == 3:
mrezanew[x, y] = 1
elif vsota == 2 and mreza[x, y] == 1:
mrezanew[x, y] = 1
else:
mrezanew = 0
print(mrezanew)
我在第15行得到下一个错误: TypeError:“int”对象不支持项分配
这是因为您的最后一个条件是
mrezanew = 0
。在循环的某些迭代过程中,mrezanew
变量被int
对象覆盖。下次循环运行时,当您尝试访问索引[x, y]
时,由于int
对象不支持索引,因此无法提供TypeError
在第一次迭代之后,mrezanew不再是NumPy数组。vsota在第一次迭代中为0,因此mrezanew变为整数
相关问题 更多 >
编程相关推荐