2010-01-15 74 views
0

這是我的代碼部分:爲什麼我得到這個追溯?

if ind_1<>0:    
rbrcol=[] 
brdod1=[] 
for i in range(27): 
    if Add_Cyc_1[1,i]!=0: 
     rbrcol.append(Add_Cyc_1[0,i]) 
     brdod1.append(Add_Cyc_1[1,i]) 
    Probrani_1=vstack((rbrcol,brdod1)) 


pok=0 
for i in (rbrcol): 
pok+=1   
broj1=0 
for j in range(21): 
    if SYS_STATE_1[i,j]==0: 
     broj1+=1      
     if broj1 <= Probrani_1[1,pok-1]: 
      SYS_STATE_1[i,j]=123456 

當我運行程序我得到這個:

Traceback (most recent call last): 
    File "C:/Python26/pokusaj2.py", line 157, in <module> 
    for i in (rbrcol): 
NameError: name 'rbrcol' is not defined 

我該怎麼辦錯了???

回答

2

就像錯誤說的那樣,「rbrcol」沒有價值。檢查你的循環

for i in range(27): 
    if Add_Cyc_1[1,i]!=0: <----- this part doesn't get through 
     rbrcol.append(Add_Cyc_1[0,i]) 
     brdod1.append(Add_Cyc_1[1,i]) 
    Probrani_1=vstack((rbrcol,brdod1)) 

另外,什麼是Add_Cyc_1?要指定多維列表

Add_Cyc_1[1,i] should be Add_Cyc_1[1][i] 

進一步,這

if ind_1<>0: <<--- if this is not true, then rbrcol will not be defined 
    rbrcol=[]  << --- <> should be != , although <> its also valid, but now ppl use != 
    brdod1=[] 
4

我認爲真正的問題是,如果在最高層。您的縮進不正確 - 寫入的代碼將不會運行,因爲if後面的行沒有縮進。

假設它是在原代碼縮進,然後rbrcol是不是如果ind_1是0和ghostdog說,如果if聲明永遠不會觸發,然後rbrcol不會在所有設置初始化。