我有这个代码来制作一个更漂亮的数独板。我想知道为什么最后一列的零不会消失。列中的其他零消失,但不是最后一列。也期待一些反馈。
board = [[5, 3, 0, 0, 7, 0, 0, 0, 0],
[6, 0, 0, 1, 9, 5, 0, 0, 0],
[0, 9, 8, 0, 0, 0, 0, 6, 0],
[8, 0, 0, 0, 6, 0, 0, 0, 3],
[4, 0, 0, 8, 0, 3, 0, 0, 1],
[7, 0, 0, 0, 2, 0, 0, 0, 6],
[0, 6, 0, 0, 0, 0, 2, 8, 0],
[0, 0, 0, 4, 1, 9, 0, 0, 5],
[0, 0, 0, 0, 8, 0, 0, 7, 9]]
def print_board(board):
print("-------------------------")
for i in range(len(board)):
if i % 3 == 0 and i != 0:
print("-------------------------")
for t in range(len(board[0])):
if t % 3 == 0:
print("| ", end="")
if t == 8:
print(str(board[i][t]) + " |")
else:
if board[i][t] == 0:
print(" " + "", end=" ")
if board[i][t] != 0:
print(str(board[i][t]) + "", end=" ")
print("-------------------------")
3条答案
按热度按时间kt06eoxx1#
请尝试以下代码:
输出:
y4ekin9u2#
在if/else块中,就像最后一个以
if t == 8:
,的else
仅当if
上面的说法是错误的。因此,您的代码只设置为在不查看最后一列时处理值是否为0。您应该只对互斥的情况使用if/else,例如
t % 3 == 0
以及t == 8
.zy1mlcev3#
制作一个小助手函数:
只需允许
i%3==0
打印一行。另外,您不需要以不同的方式处理最后一个字符;只需在这行的最后一个边框上再加上一个印刷品。那么您的代码是: