gpt4 book ai didi

Python - 矩阵索引错误异常不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 10:09:57 24 4
gpt4 key购买 nike

我正在尝试编写一个函数,它可以在网格中向左(在 x 轴上)移动 1 个单位。它应该只在左侧有有效坐标时起作用,如果没有(即起点在网格的边缘),该函数应返回 None。这是我的尝试:

def left_move(point):
try:
LEFT = grid[point[1]][point[0]-1]
except IndexError:
return None
if LEFT == '.':
change = [-1,0]
for idx, amount in enumerate(change):
point[idx]+=amount
return point
return None

假设起点是 [0,3],因此在网格的边缘,我只运行代码的顶部:

def left_move(point):
try:
LEFT = grid[point[1]][point[0]-1]
except IndexError:
return None

它按预期返回 None。但是,如果执行整个 block ,它会返回 [-1,3] ,它在网格之外并且不应该被 try-except 允许。为什么是这样?如何纠正?

最佳答案

这是因为Python对数组索引中的-1的解释是数组的最后一个元素。 -1 是引用数组元素的合法方式,因此不会触发 IndexError 异常。

>>> a = [0,1,2]
>>> print a[-1]
2

您需要手动检查给定的值是否解析为 -1,然后相应地进行处理。

关于Python - 矩阵索引错误异常不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38975148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com