2017-02-04 2 views
0

Привет У меня есть следующий текстовый файл, на котором я использую читателя CSV:неаккуратно чтение из логики файл ошибки Python

number,obstacle,location,message 
1,gobacktostart,8,Sorry but you've landed on a dangerous number, back to the start for you! 
2,movetosquare42,matrix[1][0],The meaning of life is 42 or so they say, and that's where you're headed 

Я желаю, чтобы (в конце) получить число 8 из строки, которая начинается 1, gobacktostart, 8 .... и т.д..

Мой код:

def gobacktostart(): 

    with open("obstacles.txt","r") as f: 
     idnumber="1" 
     fReader=csv.reader(f) 
     for row in fReader: 
      for field in row: 
       if field==idnumber: 
        print(row[3]) 

        player1position==row[2] 
        print(player1position) 

и нежелательная выход, однако, является:

>>> 
Sorry but you've landed on a dangerous number 
1 
>>> 

мне нужно прочитать значение в переменную player1position для того, чтобы передать его на другой функции в другой части программы.

Любые мысли о решении этой логической ошибки? Почему это печатает «1», когда строка [2] относится к 8. Кроме того, строка [3] кажется правильно исполнена в предыдущей строке ....

+0

Вместо присваивания ('=') вы использовали '==' (тестирование равенства). Результат теста равенства игнорируется, и вы просто получаете * любой объект 'player1position' уже ссылался *. –

+0

Обратите внимание, что здесь не нужно использовать 'for field in row'. Просто проверьте, если 'row [0] == idnumber'; вам не нужно проверять каждый столбец в строке, когда должен соответствовать только первый столбец. –

ответ

1

Вы проверяете равенство не присвоения в player position == row[2]

+0

Спасибо. Пропустил это! –

Смежные вопросы