天天看點

Python程式設計快速上手實踐項目P79 4.10.2 字元圖網格

P79 4.10.2 字元圖網格

原題給的清單中的清單的表項數目都一樣為6,考慮到如果不一樣,以len(grid[0])作為col值就有可能報錯,于是建了一個col_list[]來收集表項數目,循環到out of range的表項時print * 代替。

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', '.', '.'],
['.', '0', '0', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]


row=len(grid)
col_list=[]
for i in range(row):
    col=len(grid[i])
    col_list.append(col) 
col_max=max(col_list) 
for y in range(col_max):
    for x in range(row):
            if x!=row-1:
                if y<col_list[x]:                
                    print(grid[x][y],end='')
                else:
                    print('*',end='')
            else:
                if y<col_list[x]:                
                    print(grid[x][y],end='\n')
                else:
                    print('*',end='\n')
           

表項數目一緻時輸出的與原題一樣

如果最後一個清單表項為5個時

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’, ‘.’, ‘.’],

[’.’, ‘0’, ‘0’, ‘.’, ‘.’, ‘.’],

[’.’, ‘.’, ‘.’, ‘.’, ‘.’]]

此時輸出的結果為

..00.00..
.0000000.
.0000000.
..00000..
...000...
....0...*

           

繼續閱讀