2016-08-22 5 views
1

Я использую 4 пробела для отступов, но получаю синтаксическую ошибку. Когда я использую отступы в текстовом редакторе, отлично работает. Текстовый редактор создает только 1 блок, который я не могу редактировать. Имеются ли пробелы, которые не могут использоваться как отступы?4 пробела для отступов - ошибка синтаксиса

def replace_line(file_name, line_num, text): 
    try: 
      lines = open(file_name, 'r').readlines() 
      lines[line_num] = text 
      out = open(file_name, 'w') 
      out.writelines(lines) 
      out.close() 
     if not var and not var2: 
      return 

Я получаю синтаксическую ошибку в строке if not var.

+1

Пожалуйста, укажите код, который вызывает ошибку. В общем, пространства отлично. – Karin

+2

Из вашего описания это звучит так, будто у вас смешанные вкладки и пробелы. –

ответ

6

Если вы получаете Синтаксическая ошибка из-за вмятины он, скорее всего, связана с тем, что ваш код включает в себя как ТАБУЛЯЦИИ и ПРОСТРАНСТВА как методы вдавливания. Несмотря на то, что код может иметь одинаковую величину слева, a TAB - это один символ, тогда как тот же отступ с использованием SPACE s принимает 4 символа (в вашем случае). Python freaks out и выдает ошибку, потому что он не видит рендеринга кода, который вы видите, он видит непоследовательное количество символов, используемых перед строкой.

Чтобы исправить это, сначала замените все вкладками с соответствующим эквивалентом пробелов, а затем просмотрите свой код и убедитесь, что все отступы в вашем коде действительны и правильны. Если вы используете такой редактор, как Sublime Text, то вы можете сделать это одним или двумя щелчками мыши, с более примитивным редактором, найденным в TAB/SPACE Разница может быть намного более утомительной.

Надеется, что это помогает

+0

Ошибка по-прежнему сохраняется, к сожалению. – Dzrte4gle

+0

Проверьте отступы. Я вижу строку 'lines = open (имя_файла, 'r'). Readlines()' отступы 3 раза вместо 2 (1 для 'def', 1 для' try') –

0

Бросив исключение: передача ее решает. Это не требуется при использовании отступов в текстовом редакторе. Это странно.