我正在计算像素之间的距离,我只是在程序中做了一个鼠标回调函数,用于计算x和y坐标。
这是代码,我尝试过的
def distance():
length = len(position)
# Distance in terms of x
distance_value = position[length-1][0] - position[length-2][0]
# Distance in terms of y
# distance_value = position[length-1][1] - position[length-2][1]
print("Value of pixel is: " + str(distance_value))
IndexError:列表索引超出范围。
答案 0 :(得分:0)
我想您需要执行以下操作:
def distance():
length = len(position)
# Distance in terms of x
try:
distance_value = position[length-1][0] - position[length-2][0]
print("Value of pixel is: " + str(distance_value))
except IndexError as e:
print('There is an error')
print(str(e))
答案 1 :(得分:0)
我假设position
是x,y对的列表。因此,在第一个位置,由于没有可比较的位置,您的程序将失败。
在这种情况下,您还可以使用if
语句而不是try
语句,它可以捕获所有IndexError
,即,您可以防止发生错误而不是捕获错误。
if len(position) > 1:
distance_value = position[-1][0] - position[-2][0]
请注意,您应该宁愿使用负索引来引用最后一个元素,而不是
length - x