python 进入下一次循环_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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值