ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python-循环中的上一个和下一个元素

2019-11-19 10:58:20  阅读:379  来源: 互联网

标签:python-3-x list for-loop python


我有这样的要点清单:

a = [(2,4),(34,53),(34,2),(84,64)]

这些点以顺时针顺序列出,并形成一个多边形.我需要找到多边形的周长,这是相邻点之间距离的总和.我将不得不使用距离公式来查找距离,因此它必须是(2,4)与(34,53)之间的距离,然后是(34,53)与(34,2)之间的距离等等.

我将如何编写此for循环,该循环使用距离公式来使用第一个元素和第二个元素的点,然后移动到第二个和第三个元素等等,最后在最后一个元素时使用它在最后一个元素和第一个元素上使用距离公式.有点像自动换行?

解决方法:

定义多边形周边功能

import math
def poly_peri():

a = [(2,4),(34,53),(34,2),(84,64)]
# Intializing perimeter to be 0
perimeter = 0

# MAIN LOOP
#[len(a) - 1] because we dont want to continue after the last number
for i in range(len(a) - 1):
    distance = ((a[i + 1][0] - a[i][0])**2 + (a[i+1][1] - a[i][1])**2)

    perimeter += math.sqrt(distance)

return perimeter

您也可以将多边形的点列表用作函数poly_peri(a)的参数.意思是,当您调用函数poly_peri()时,您将其称为poly_peri([(2,4),(34,53),(34,2),(84,64)]).不管您把什么作为参数,这都会输出相同的结果.代码看起来像

import math
def poly_peri(a):

points = a
# Intializing perimeter to be 0
perimeter = 0

# MAIN LOOP
#[len(points) - 1] because we dont want to continue after the last number
a.append(a[0])
for i in range(len(points) - 1):
    distance = ((points[i + 1][0] - points[i][0])**2 + (points[i+1][1] - points[i][1])**2)

    perimeter += math.sqrt(distance)

return perimeter

标签:python-3-x,list,for-loop,python
来源: https://codeday.me/bug/20191119/2035574.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有