【发布时间】:2020-05-22 22:31:37
【问题描述】:
在 for 循环中迭代 x 和 y 时,即使 x 和 y 的长度相等,我也会不断收到 IndexError(list index out of range)。我可能做错了什么?
from math import sqrt
x = []
y = []
distance = []
perimeter = sum(distance)
while True:
x.append(int(input('Enter x value of a point: ')))
y.append(int(input('Enter y value of the point: ')))
if x[-1] == 0 and y[-1] == 0:
break
for i,j in zip(x, y):
distance = sqrt((abs((x[i]) - (x[i+1])))**2 + (abs((y[i]) - (y[i+1])))**2)
if i == len(x):
break
print(perimeter)
【问题讨论】:
-
它在第二个 for 循环中。这里 i 和 j 实际上是 x 和 y 内部的值,而不是索引。只是这样做: for i in range(len(x)): 代替它应该可以工作。