почему я получаю эту трассировку? - PullRequest
0 голосов
/ 15 января 2010

Это часть моего кода:

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 ]

4 голосов
/ 15 января 2010

Я думаю, что настоящая проблема заключается в том, если на самом верху. Ваш отступ неверный - написанный код не будет работать, потому что строка после if не имеет отступа.

Если предположить, что он имеет отступ в исходном коде, rbrcol не инициализируется, если ind_1 равен 0, и, как говорит ghostdog, если оператор if никогда не запускается, то rbrcol не будет установлен вообще.

2 голосов
/ 15 января 2010

Как и в сообщении об ошибке, «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=[]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...