我知道这是一个常见的问题,但我无法找到解决方案。我在Python中使用for循环时遇到了问题。当我用这篇文章运行程序时
for j in range(len(line1)- 3):
print 'j =', j
spl1 = spline(line1[j], line1[j + 1], line1[j + 2], line1[j + 3], t, Nu)
print 'spl1 ='
matrix.show(spl1)
我得到一个输出:
Traceback (most recent call last):
File "D:\work\curvature\test\twisted\cardinal_spline.py", line 272, in <module> main()
File "D:\work\curvature\test\twisted\cardinal_spline.py", line 111, in main
matrix.show(spl1)
UnboundLocalError: local variable 'spl1' referenced before assignment
此外,它不打印j变量。我在那里看不到任何错误。 “spl1”在for循环中分配,但看起来解释器只是跳过它。
请指出错误。
答案 0 :(得分:3)
在Python中,循环不包含单独的范围,因此如果输入循环,spl1
变量将
line1变量可能长度为3个或更少,因此从未输入循环,因此从未赋值变量。
答案 1 :(得分:1)
由于len(line1) <= 3
在某些情况下,您的for循环根本未执行,因此未分配spl1
。
答案 2 :(得分:1)
我猜测line1
的长度小于或等于3.(range(0)
会像range(-1)
一样返回一个空列表,等等。)因此,你的for循环没有任何迭代,因此它不执行该代码块。