运行此python文件时,我一直收到此错误消息。它发生在这一行:
p1x,p1y = newList [0]
TypeError:' Float'对象不可迭代
以下是代码:
newList = []
for i, val in enumerate(poly):
if poly[i] != True:
newList.append(poly[i][0])
n = len(newList)
inside =False
p1x, p1y = newList[0]
for i in range(n+1):
p2x, p2y = newList[i % n]
if y > min(p1y,p2y):
if y <= max(p1y,p2y):
if x <= max(p1x,p2x):
if p1y != p2y:
xinters = (y-p1y)*(p2x-p1x)/(p2y-p1y)+p1x
if p1x == p2x or x <= xinters:
return True
p1x,p1y = p2x,p2y
return inside
为什么我这样做
p1x = newList[0]
p1y = newList[0]
它有效,但不是相反?
答案 0 :(得分:0)
由于newList[0]
是Float
,因此无法将其分成两部分(原始代码尝试)。您的第二次尝试是将相同的 Float
分配给p1x
和p1y
,这可能不是您想要做的;但如果是,那么你可以写p1x,p1y = newList[0], newList[0]
。
答案 1 :(得分:0)
什么是newList [0]?
如果它是一个浮点值,它将给你一个错误。
newList [0]必须是一个元组,如(1,2),迭代它。
你可以这样做(如果newList [0]和newList [1]是单个值。):
p1x, p1y = newList[0], newList[1]
或
newList[0] = (1,2)
p1x, p1y = newList[0]