2010-01-15 75 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不会在所有设置初始化。