Python if синтаксис 3.2.2 - PullRequest
       3

Python if синтаксис 3.2.2

1 голос
/ 10 декабря 2011

Это действительно простой вопрос, но что не так с этим кодом?

for row in rows:
    if row["Type"] = 'DEADLINE':
        print (row["Title"])

Я получаю ошибку TabError: inconsistent use of tabs and spaces in indentation, указывающую на двоеточие в конце if.

Извините, если это слишком новичок для SO, но я не могу определить, является ли это проблемой при переходе с 2.x python на 3.x или это просто синтаксис, который мне еще предстоит изучить.

Спасибо

РЕДАКТИРОВАТЬ: Проблема решена.Я не осознавал, что в моем текстовом редакторе отключена функция «превращать вкладки в пробелы».Так что да, это была смесь вкладок и пробелов.Я предположил, что сообщение означало, что я использовал нестандартное использование пробела в целом, как будто было слишком много пробелов или что-то в этом роде.

И да, я понимаю, что single = является синтаксической ошибкой, я пытался удалить TabError, но, очевидно, ошибался.

Ответы [ 3 ]

7 голосов
/ 10 декабря 2011

Вы, вероятно, смешиваете табуляции и пробелы для отступа, как в сообщении об ошибке.

Некоторые редакторы имеют раздражающую привычку автоматически заменять 8 пробелов на табуляцию, поэтому ваш код может выглядеть примерно так:

for row in rows:
    if row["Type"] = 'DEADLINE':
->print (row["Title"])

, где -> представляет символ табуляции.

Скажите вашему редактору сделать вкладки видимыми, и не заменять пробелы снова.

В качестве альтернативы, последовательно ставьте отступиспользуя одну вкладку на уровень отступа.

3 голосов
/ 10 декабря 2011

Что на самом деле не так, так это использование одного = вместо двойного == в условии внутри оператора if.

Кроме того, убедитесь, что вы настраиваете свой редактор на использование только пробелов и никогда не вкладок при редактировании кода Python.

2 голосов
/ 10 декабря 2011

Похоже, проблема в том, что вы используете отступ для кода.У вас есть смесь символов табуляции и пробелов.Я предлагаю вам использовать «показывать пробелы» в редакторе и заменять все вкладки в коде на правильное количество пробелов.

Если в вашем редакторе нет функции «показывать пробелы», вы можете определитьсимволы табуляции, временно вставляя пробел в начале строки и наблюдая, чтобы увидеть, перемещается ли конец строки ровно на один пробел.Если он либо не двигается, либо прыгает на (например) 4 или 8 символов, у вас есть символ табуляции где-то в этой строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...