#Print the user board
s = ''
for i in range(n):
for j in range(n):
z = i * n j
s = ' '
if z < 10:
s = ' '
s = str(z)
s = '\n'
print(dedent(s))
queens = list(map(int, input("Queens: ").split()))
在繼續下面的皇后輸入之前,我不斷從我的最后一個空白行的測驗用例環境中收到錯誤。我可以解決什么問題
我嘗試了 textwrap 中的 cleandoc ,雖然它可以作業,但它破壞了“s”字串中 z 的每個所需間距和新的獨特行,這是從 0 到 63 的完美 8 x 8。
uj5u.com熱心網友回復:
創建正確的方法而不是洗掉之后的東西更容易:
from itertools import count
import toolz
n = 8
start_value = 0
counter = count(start_value)
rows = [" ".join(f"{num:2}" for num in toolz.take(n, counter)) for _ in range(n)]
print("\n".join(rows))
創建一個可迭代的itertools.count計數器,每次您需要時都會給出下一個值。在這里,該take函式每次將獲得 8 個專案。
uj5u.com熱心網友回復:
如果您不想要初始空間,最好使用join,它只會在連續專案之間添加分隔符:
s = '\n'.join(' '.join('{:2d}'.format(i * n j)
for j in range(n))
for i in range(n))
print(s)
按預期給出:
0 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 43 44 45 46 47
48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/522493.html
標籤:Python列表
上一篇:使用lambda和python中的多個條件對字串串列進行排序
下一篇:從產品描述串列中回傳平均容量?
