0

これがよくある質問であることは知っていますが、私の場合の解決策を見つけることができませんでした。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ループで割り当てられていますが、インタプリタがそれをスキップしているように見えます。

間違いを指摘してください。

4

3 に答える 3

3

Pythonでは、ループは個別のスコープを保持しないため、ループに入るとspl1変数「グローバルに」設定されます。

line1変数は3文字以下の長さである可能性が高いため、ループに入ることがなく、変数が割り当てられることはありませんでした。

于 2012-07-23T14:57:02.667 に答える
1

len(line1) <= 3場合によっては、forループがまったく実行されないため、spl1割り当てられません。

于 2012-07-23T14:55:15.240 に答える
1

あなたの長さはline13以下だと思います(range(0)空のリストを返すrange(-1)など)。そのため、forループには反復するものがないため、それは実行されません。コードのブロック。

于 2012-07-23T14:57:13.753 に答える