您的主板看起來美麗並不僅僅是正確的,你需要一些格式化爲好。
你可以使用以下兩種:
board = []
for i in range(1,43):
board.append(i)
print('{:>4}'.format(i), end='')
if i % 6 == 0:
print()
# 1 2 3 4 5 6
# 7 8 9 10 11 12
# 13 14 15 16 17 18
# 19 20 21 22 23 24
# 25 26 27 28 29 30
# 31 32 33 34 35 36
# 37 38 39 40 41 42
正如你可以看到我的抑制print()
默認結束字符是通過指定end=''
換行符。相反,無論何時i % 6 == 0
(%
順便修改),通過調用一個空行print()
來打印換行符。至於格式,你可以看看the documentation。
而且使一切更人性化,我將它包裝在一個函數
def build_board(cols, rows, sp=2):
board = []
l = len(str(cols * rows)) + sp
for i in range(1, cols * rows + 1):
board.append(i)
print('{0:>{1}}'.format(i, l), end='')
if i % cols == 0:
print()
return board
build_board(8, 17, 3)
# 1 2 3 4 5 6 7 8
# 9 10 11 12 13 14 15 16
# 17 18 19 20 21 22 23 24
# 25 26 27 28 29 30 31 32
# ...
# 121 122 123 124 125 126 127 128
# 129 130 131 132 133 134 135 136
在您發佈的eaxmple中,最後三行只有5個字符。如果不是這種情況,你可能已經用mod6識別了這個模式。總之,你可以檢查'i'的mod6,當它是0時,執行'print()' –
你使用Python 2還是3? –