2017-10-21 46 views
1

我正在做一個0的網格,我希望我的行在新行上打印,但我想要一個更簡單的方法,然後不斷要求打印(行)。這是我的代碼到目前爲止。基本python重複打印請求

row = [] 

for i in range(0,1): 

    row.append(" O " * 5) 
    print(row) 
    print(row) 

回答

0

你所描述的是遍歷零維的二維列表。

# The dimensions of the two-dimensional list. 
columns = 5 
rows = 5 

# A generator to produce the two-dimensional list. 
zeros = [[0 for i in range(columns)] for j in range(rows)] 

# Loops through and prints each row of the two-dimensional list. 
for row in zeros: 

    print(row) 

對於給定的尺寸,當執行這段代碼的輸出如下:

[0, 0, 0, 0, 0] 
[0, 0, 0, 0, 0] 
[0, 0, 0, 0, 0] 
[0, 0, 0, 0, 0] 
[0, 0, 0, 0, 0] 
+0

謝謝你,我居然拿了0TTT0諮詢和範圍又寫了looprow = [] 格= 5 爲我(0,1): row.append (「O」* 5) #print(row) while grid> 0: print(row) grid = grid - 1 – Megan59781

0
grid = [[0 for i in range(5)] for j in range(5)] 
[print(row) for row in grid] 

輸出:

[0, 0, 0, 0, 0] 
[0, 0, 0, 0, 0] 
[0, 0, 0, 0, 0] 
[0, 0, 0, 0, 0] 
[0, 0, 0, 0, 0] 
+1

您的第一行代碼很好,但第二行不太好。請不要使用這樣的列表解析!只需使用「傳統」的''循環。你的'[print(row)in grid]'創建一個完整的'None'列表,然後拋出該列表。它通常被認爲是一個不好的風格,因爲列表元素有任何副作用:除了構建列表之外,它不應該有任何其他的影響。因此,使用列表comp _purely_作爲副作用並將列表扔掉是一個很大的禁忌。 –

+0

謝謝你的解釋! – Jossildur

1

如果你只是想的固定網格字符串,你不需要任何循環,你可以使用字符串和列表multiplica和字符串.join方法將網格的行連接在一起進行打印。

size = 5 
row = " O " * size 
grid = [row] * size 
print('\n'.join(grid)) 

輸出

O O O O O 
O O O O O 
O O O O O 
O O O O O 
O O O O O