You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 22:47:41