Python网格路径追踪代码格式化求助:X标记轨迹练习
解决网格轨迹的格式化输出问题
我懂你的困扰!你现在的代码直接打印了网格的列表结构,所以才会输出[['x', '.', '.'], ...]这种不符合预期的格式。要实现每行显示连续字符的效果,我们需要把网格的每一行元素拼接成字符串后再打印,而不是直接打印列表对象。
解决方案:添加网格打印函数
我们可以写一个简单的辅助函数,专门用来把网格转换成可视化的格式:
def print_grid(grid): # 遍历网格的每一行,把列表元素拼接成字符串后打印 for row in grid: print(''.join(row))
然后把你代码中所有的print(grid)替换成print_grid(grid)就可以了。
修改后的完整代码
def print_grid(grid): for row in grid: print(''.join(row)) g = input('Grid size: ') gn = int(g) grid = [] for i in range(gn): row = [] for j in range(gn): row.append('.') grid.append(row) grid[0][0]='x' print_grid(grid) # 替换原来的print(grid) h = 0 v = 0 m = input("Direction: ") while m != "": if m.lower() == "right": h = h+1 grid[v][h] = 'x' print_grid(grid) # 替换原来的print(grid) m = input("Direction: ") elif m.lower() == "left": h = h-1 grid[v][h]= 'x' print_grid(grid) # 替换原来的print(grid) m = input("Direction: ") elif m.lower() == "up": v = v-1 grid[v][h]= 'x' print_grid(grid) # 替换原来的print(grid) m = input("Direction: ") elif m.lower() == "down": v = v+1 grid[v][h]= 'x' print_grid(grid) # 替换原来的print(grid) m = input("Direction: ")
为什么这样有效?
''.join(row)会把每行的列表(比如['x', '.', '.'])转换成一个连续的字符串"x..",这样打印出来就是你想要的格式。- 原来的
print(grid)会直接输出Python列表的默认字符串表示,这就是你看到方括号和逗号的原因。
现在运行修改后的代码,就能得到你预期的轨迹显示效果啦!
内容的提问来源于stack exchange,提问作者RJ_828
相关产品推荐
相关产品推荐

