2012-07-24 55 views
0

我試圖弄清楚爲什麼我在嘗試使用此程序時遇到語法錯誤。當我使用填充列表時,此代碼工作正常,但是,我決定使用數組,因爲我可以根據自己的喜好操縱數據。填充數組 - 獲取'for'語句的語法錯誤

下面是代碼:

#Frame Creation 

frames=[] 

for n in range (0, (workingframes*archnodes*3)): 
    frames.append() 


frames = array(frames)         #generates array 
frames = reshape(frames, ((archnodes*3),workingframes) #reshapes array 




#Frame Population 

for f in range (0, workingframes): 

    if f<=(workingframes/2): 

     for x in range (0, (archnodes)): 
      frames[(archnodes*3)].insert((archnodes*3), (archstartred[x])) 
      frames[(archnodes*3)+1].insert(((archnodes*3)+1),(archstartgrn[x])) 
      frames[(archnodes*3)+2].insert(((archnodes*3)+2),(archstartblu[x])) 

     for y in range (0, nodesperframe): 
      archstartred.pop() 
      archstartgrn.pop() 
      archstartblu.pop() 
      archstartred.insert(0, backred) 
      archstartgrn.insert(0, backgrn) 
      archstartblu.insert(0, backblu) 

    else: 
     for y in range (0, nodesperframe): 
      archstartred.pop(0) 
      archstartgrn.pop(0) 
      archstartblu.pop(0) 
      archstartred.append(backred) 
      archstartgrn.append(backgrn) 
      archstartblu.append(backblu) 

     for x in range (0, (archnodes)): 
      frames[(archnodes*3)].insert((archnodes*3), (archstartred[x])) 
      frames[(archnodes*3)+1].insert(((archnodes*3)+1),(archstartgrn[x])) 
      frames[(archnodes*3)+2].insert(((archnodes*3)+2),(archstartblu[x])) 

我不斷收到此錯誤:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "backandforth3.py", line 99 
    for f in range (0, workingframes): 
            ^
SyntaxError: invalid syntax 

我一直在使用不同的值 'F' 嘗試。我嘗試刪除冒號(這會導致其他語法錯誤。)我錯過了什麼?

+2

您在提供錯誤的行上方的行中缺少右括號。下一行的SyntaxErrors是缺少括號的常見症狀。 – mgilson 2012-07-24 19:44:13

+0

另請注意,如果該函數被執行,則'frames.append()'(第6行)是一個TypeError。 – mgilson 2012-07-24 19:46:31

+0

我不敢相信我錯過了!謝謝! – 2012-07-24 19:51:55

回答

4

的問題是在這裏:

frames = reshape(frames, ((archnodes*3),workingframes) #reshapes array 

你有三個(和兩個)。 Python認爲reshape()調用在行尾沒有結束,所以它沿着文件前進,直到遇到for:,這在函數調用中沒有意義。

+0

+1表示「Python認爲重新調用沒有結束」。如果你提到這個原因,我會再次使用+1(如果可能),因爲python會自動延續任何括號/括號中的行。 – mgilson 2012-07-24 19:49:40

+0

GEEZE !!!我知道這是我忽略的東西!謝謝! – 2012-07-24 19:51:18

2

缺少的括號:

frames = reshape(frames, ((archnodes*3),workingframes) 
+0

謝謝,我簡直不敢相信那麼簡單! – 2012-07-24 19:54:08