我试着用这段代码把一个数组"a“放到这个线路板上,但是我只得到了一个只有数组第一个数字的线路板,似乎在变量"i”上缺少并递增,但是我不能在join附近没有语法错误的情况下放入递增,有人能帮忙吗?提前谢谢。代码如下:
`a = [25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
i = 0
def inc_i(i):
i += 1
return i
def board_draw(height, width, i):
top = "┌" + "┬".join(["─"*6]*width) + "┐\n"
bottom = "└" + "┴".join(["─"*6]*width) + "┘"
middle = "├" + "┼".join(["─"*6]*width) + "┤\n"
print(top +
middle.join(
"│" +
"│".join(' {:02d} '.format(a[i])
for y in range(width)) +
"│\n"
for x in range(height)) +
bottom)
board_draw(5, 5, 0)`

我要数组中的每个单元格都有一个不同的数字。
提前感谢
发布于 2020-01-12 03:26:09
I在任何时候都不会递增。为了让你的程序保持“逻辑性”,试试这个:
a = [25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
def board_draw(height, width):
top = "┌" + "┬".join(["─"*6]*width) + "┐\n"
bottom = "└" + "┴".join(["─"*6]*width) + "┘"
middle = "├" + "┼".join(["─"*6]*width) + "┤\n"
print(top +
middle.join(
"│" +
"│".join(' {:02d} '.format(a[(x*width) + y]) for y in range(width)) +
"│\n" for x in range(height)) +
bottom
)
board_draw(5, 5)发布于 2020-01-12 03:20:34
这是你想要的结果吗?
a = [[25, 24, 23, 22, 21], [20, 19, 18, 17, 16], [15, 14, 13, 12, 11], [10, 9, 8, 7, 6], [5, 4, 3, 2, 1]]
i = 0
def inc_i(i):
i += 1
return i
def board_draw(height, width, i):
top = "┌" + "┬".join(["─"*6]*width) + "┐\n"
bottom = "└" + "┴".join(["─"*6]*width) + "┘"
middle = "├" + "┼".join(["─"*6]*width) + "┤\n"
print(top +
middle.join(
"│" +
"│".join(' {:02d} '.format(a[x][y])
for y in range(width)) +
"│\n"
for x in range(height)) +
bottom)
board_draw(5, 5, 0)

您可能希望转换列表a,如下所示:
a = [25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
a_bis = [[n for n in a[i:i+4]] for i in range(5)]
a_bis[[25, 24, 23, 22],
[24, 23, 22, 21],
[23, 22, 21, 20],
[22, 21, 20, 19],
[21, 20, 19, 18]]发布于 2020-01-12 03:53:25
我修改并使用了您已经定义的函数inc_i()来迭代列表并打印出正确的结果:
a = [25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
i = -1
def inc_i():
global i
i += 1
return i
def board_draw(height, width, i):
top = "┌" + "┬".join(["─"*6]*width) + "┐\n"
bottom = "└" + "┴".join(["─"*6]*width) + "┘"
middle = "├" + "┼".join(["─"*6]*width) + "┤\n"
print(top +
middle.join(
"│" +
"│".join(' {:02d} '.format(a[inc_i()]) for y in range(width)) +
"│\n" for x in range(height)) +
bottom)
board_draw(5, 5, 0)https://stackoverflow.com/questions/59697743
复制相似问题