【发布时间】:2016-10-13 00:12:36
【问题描述】:
我对 Python 3 非常陌生,所以请善待。
我已经查看了我能找到的所有相关文档 - 似乎确实有很多,只是我仍然不知道该怎么做。
这是我的代码:
poly = [[36606.0,53223.0],[37332.0,52224.0],[39043.0,53223.0],
[41603.0,53223.0],[42657.0,53278.0],[43123.0,52060.0],
[44054.0,51156.0],[45806.0,51498.0],[46751.0,53237.0],
[46983.0,54606.0],[45861.0,57057.0],[44971.0,58836.0],
[44054.0,60616.0],[43451.0,58138.0],[41850.0,59179.0],
[40850.0,60370.0],[39906.0,59233.0],[38674.0,59179.0],
[35566.0,56249.0],[37592.0,57536.0]]
def perimeter():
return (sum((abs((x1 - x0)**2)+abs((y1 - y0)**2))**.5)
for ((x0, y0), (x1, y1)) in parts1(poly))
def parts1(poly):
return poly[0:] + [poly[0]]
print(perimeter())
它正在运行 没有任何错误,但我得到了以下结果:
generator object perimeter.locals.genexpr at 0x7f47d8671c50
我怎样才能让它给我价值/答案? 我真的不知道发生了什么。
【问题讨论】:
-
我假设您所追求的值/答案是多边形的周长?
-
提示:find a text editor 了解 Python 语法并具有 brace matching。使用这样的编辑器将帮助您在以后避免此错误。
-
题外话:取
abs()的(x1 - x0)**2是不必要的,因为它总是会产生一个正值(即使(x1 - x0)是负值)。 -
我得到了我的答案,吐出 41095.327,忘记通过匹配最后一个点与第一个点来关闭形状
标签: python python-3.x generator