【发布时间】:2019-03-22 18:14:08
【问题描述】:
我正在为我的 Python 课程做一个作业,我非常接近完成它,但有一个我似乎无法解决的烦人问题,但在我解释之前,这是我的代码:
import math as m
def distance(x1,y1,x2,y2):
xdel=(x2-x1)**2
ydel=(y2-y1)**2
print(xdel, "is xdel")
print(ydel, "is ydel")
dist = m.sqrt(xdel+ydel)
return dist
xl = []
yl = []
dists = []
while True:
ux = input("X for coordinate (blank for exit): ")
if ux == "":
break
ux = int(ux)
uy = int(input("Y for coordinate: "))
xl.append(ux)
yl.append(uy)
for i in range(len(xl)-2):
x2 = xl[i+1]
y2 = yl[i+1]
dist = distance(xl[i],yl[i],x2,y2)
dists.append(float(dist))
perimeter = sum(dists)
print(perimeter)
我的列表dists 没有被for 循环中的最后一行代码附加,我不知道为什么。我觉得我已经用尽了我的新生编码技巧来解决这个问题,所以我求助于你,哦,StackOverflow 的高贵巫师。
编辑:脚本的重点是从用户那里获取二维图形上的坐标对,获取所有线的距离,并给出线组成的多边形的周长。抱歉,如果问题中不清楚。但无论输入是什么,列表仍然没有被填充。
【问题讨论】:
-
你的意见是什么?
-
@bunbun 我应该在问的时候解释一下,脚本的重点是从用户那里获取二维图上的坐标对,获取所有线的距离,并给出周长线条组成的多边形。
-
学习调试。例如,添加
print("i " + str(i))作为循环的第一行会给你一个关于发生了什么的重要提示 -
如果你有 3 个或更多点,它会被附加,如果你在最后做
print(dists),你可以在dists中看到一些值。但是,您的代码并没有为您提供所需的边界
标签: python list loops indexing append