你好,我是python的新手,我开始从一本名为“自动化无聊的东西”的书中学习,其中有一个名为Character Picture Grid的项目,我做了但我认为我的代码有点愚蠢,任何人都告诉我是做这个项目的正确方法吗? :D谢谢你^^
代码:
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', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
def x_y_1(grid):
for y in range(9):
for x in [0]:
print(grid[y][x],end='')
print(end='\n')
def x_y_2(grid):
for y in range(9):
for x in [1]:
print(grid[y][x],end='')
print(end='\n')
def x_y_3(grid):
for y in range(9):
for x in [2]:
print(grid[y][x],end='')
print(end='\n')
def x_y_4(grid):
for y in range(9):
for x in [3]:
print(grid[y][x],end='')
print(end='\n')
def x_y_5(grid):
for y in range(9):
for x in [4]:
print(grid[y][x],end='')
print(end='\n')
def x_y_6(grid):
for y in range(9):
for x in [5]:
print(grid[y][x],end='')
print(end='\n')
x_y_1(grid)
x_y_2(grid)
x_y_3(grid)
x_y_4(grid)
x_y_5(grid)
x_y_6(grid)
答案 0 :(得分:1)
我在想你正在寻找按元素打印数组元素。
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', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
# You can create one generic function instead
def x_y(grid, index):
for y in range(6):
print(grid[index][y],end='')
print(end='\n')
for index_ in range(len(grid)):
x_y(grid, index_)
答案 1 :(得分:1)
我也正在读这本书,我认为你想要的答案应该如下。
def x_y(grid, index):
for y in range(9):
print(grid[y][index],end='')
print(end='\n')
for index_ in range(6):
x_y(grid, index_)
答案 2 :(得分:0)
尝试:
def rev():
x = 0
y = 0
while y < 6:
print(grid[x][y], end = '')
x += 1
if x == 8:
print(grid[x][y])
x = 0
y += 1
答案 3 :(得分:0)
与循环有关。这样,您不必一遍又一遍地重复步骤。 for循环为您完成了此任务。
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', '.', '.'],
['.', 'O', 'O', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
for y in range(len(grid[0])):
for x in range(len(grid)):
print(grid[x][y], end='')
print()
答案 4 :(得分:0)
我的函数从y变量的for循环开始,然后继续到x- for循环,该循环使用“ end =”“参数将它们打印,以将网格的x坐标连接在一起。在x-for循环之外,我使用print('')来换行。 y-for循环总共向下迭代6次以完成图片。
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', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
def characterPictureGrid(grid):
for y in range(6): #also could have used range(len(grid[0]))
for x in range(len(grid)):
print(grid[x][y], end='') #prints the x coordinates together
print('') #automatically starts new line
characterPictureGrid(grid)