让我们把这个分解一下。首先,如何创建函数pathlength?像这样:def pathlength(x, y):
return 42 # The length is 42 miles
如您所见,它接受问题中指定的x,y参数。它不计算答案,而是返回一个虚构的答案。更多关于如何在一分钟内找到答案的信息。在
用户调用此函数的方式如下:
^{pr2}$
如您所见,我传递了一个x值列表和一个y值列表。在
现在我们知道了如何声明函数,以及如何调用函数,剩下的就是数学了。问题是我们需要对一系列的项求和。我们的第一步是以方便的方式创建这些术语。这个系列从1到{}(也就是说,求和比我们的数据少了一步。在
为了表示这些值,我们可以使用切片表示法:x[1:] # The X(i) values from 1 to n-1
x[:-1] # The X(i-1) values from 1-1 to n-1-1
对y也是类似的。在
将两个X值和两个Y值以某种方式关联起来会很方便。这是zip的作业:zip(x[1:], x[:-1], y[1:], y[:-1])
zip生成一个元组列表,每个元组是与i的特定值相关的变量。在
现在依次考虑i的每个值:for xi, xi1, yi, yi1 in zip(x[1:], x[:-1], y[1:], y[:-1]):
pass
这个循环迭代所有的条目,但是没有实际的数学运算。在
现在我们需要用毕达哥拉斯公式来确定二维距离。在total_distance = 0
for xi, xi1, yi, yi1 in zip(x[1:], x[:-1], y[1:], y[: