为什么我得到这个追溯?

时间:2010-01-15 13:44:47

标签: python

这是我的代码的一部分:

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 个答案:

答案 0 :(得分:4)

我认为真正的问题是如果处于最顶端。您的缩进不正确 - 写入的代码将无法运行,因为if之后的行没有缩进。

假设它在原始代码中缩进,那么如果ind_1为0,那么rbrcol不会被初始化,而如果if语句从未触发,则ghostdog会表示rbrcol将不会被设置一点都不。

答案 1 :(得分: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=[]