我试着做一些分形图像处理,当运行我的代码时,我被告知
Traceback (most recent call last):
File "all_the_maps.py", line 72, in <module>
(xh, yh) = Hf(xf,yf,r)
TypeError: 'float' object is not iterable
相关代码块为
(xf,yf) = (0,0)
(xh,yh) = (0,0)
for n in xrange(N):
r = random.randint(1,10000)
(xf,yf) = F(xf,yf,r)
(xh,yh) = Hf(xh,yh,r)
h[int(round(xh)),int(round(yh))] = f[int(round(xf)),
int(round(yf))]
完整的文件位于http://pastebin.com/kbJD3BK9(它很长,我不太擅长python,所以读起来可能会很痛苦)。你知道吗
我已经看过其他人得到这个错误,似乎他们正在迭代一些不能迭代的东西(例如,对于7中的I:而不是范围(7):)中的I)。然而,这似乎不是我做错了什么,我真的不知道该怎么办。如果有人能帮上忙,我将不胜感激。你知道吗
编辑:Hf定义为:
def Hf(x,y,r):
if r <= 10000*a*b:
return 0.5*x, 0.5*y
elif r <= 10000*b:
return 0.5*x + 255.0
elif r <= 10000*(1 - a + a*b):
return 0.5*x + 255.0, 0.5*y + 255.0
else:
return 0.5*x, 0.5*y + 255.0
你的第二个案子
不会像其他的那样返回元组。你知道吗
为了澄清-在主程序中,在
(xh,yh) = Hf(xh,yh,r)
行中,您希望右侧有两个项目。如果r <= 10000*b
,Hf
只返回一个浮点值,而不是其他情况返回的元组。你知道吗相关问题 更多 >
编程相关推荐