首页 > 解决方案 > 不使用 Numpy 打印 Checkboard

问题描述

我正在尝试使用数组打印棋盘并且不导入任何像 Numpy 这样的包。代码应该打印回来

X 0 X 0 X 0 X 0
0 X 0 X 0 X 0 X
X 0 X 0 X 0 X 0
0 X 0 X 0 X 0 X
X 0 X 0 X 0 X 0
0 X 0 X 0 X 0 X
X 0 X 0 X 0 X 0
0 X 0 X 0 X 0 X

这是我写的

Checkerboard = [[0]*8 for i in range(8)]
for i in Checkerboard:
  p = 0
  q = 0
  for j in i:
    if q % 2 == 0 and p % 2 == 0:
      Checkerboard[i][j] = "X"
    elif q % 2 == 1 and p % 2 == 1:
      Checkerboard[i][j] = "X"
    p += 1
for i in Checkerboard:
  for j in Checkerboard:
    print(j, end='')
  print('')

但它不断收到错误:

Checkerboard[i][j] = "X"
TypeError: list indices must be integers or slices, not list

任何人都可以帮我解决问题或提供一些提示吗?
(这是一个硬件任务)

标签: pythonarrayspython-3.xmultidimensional-array

解决方案


试试这个代码:

Checkerboard = [["0"] * 8 for i in range(8)]
for i in range(len(Checkerboard)):
    for j in range(len(Checkerboard[i])):
        if i % 2 == 0 and j % 2 == 0:
            Checkerboard[i][j] = "X"
        elif i % 2 == 1 and j % 2 == 1:
            Checkerboard[i][j] = "X"


for place in Checkerboard:
    print(place, end='')
    print('')

我更新了您的代码并进行了一些更改。您尝试以这种方式更改板上的位置的问题:

Checkerboard[i][j] = "X" 

但是 i 和 j 没有被声明为索引。


推荐阅读