2013-06-16 2 views
-1

У меня есть этот короткий фрагмент кода, который не работает, и продолжает давать мне эту ошибку:Python дает «IndentationError» без видимой причины

iMac-di-Luca:~ luca$ ./peasantlr.py | File "./peasantlr.py", line 24 | for char in data: | IndentationError: unindent does not match any outer indentation level

Я действительно не найти ничего неправильно в моем коде ... Я проверил, и нет никаких недействительных символов ASCII, которые могут вызвать эту ошибку.

#!/usr/bin/env python 

def posts(data): 

    postdata = "" 

    for char in data: 
     # If it's a non-escaped {, then it's the beginning of a post. 
     if char == "{": 
      insidepost = True 
      # Skip to the char after {, start copying from there 
      continue 
     # If it's a non-escaped }, yield the post, and clean the buffer. 
     if char == "}": 
      insidepost = False 
      yield postdata.replace("&lc;","{").replace("&rc;","}") 
      postdata = "" 
     # While in a post, copy the data into the post buffer. 
     if insidepost: 
      postdata += char 

def findtags(data): 
    tagdata = "" 
    for char in data: *[This is the line which causes the error]* 
     if char == "[": 
      insidetag = True 
      continue 
     if char == "]": 
      insidetag = False 
      yield postdata 
      postdata = "" 
     if insidepost: 
      postdata += char 


f = """{A}{B}{c}{dDD}""" 
for f in posts(f): print f 

Кто-нибудь знает, как это исправить? Спасибо заранее.

+3

У вас смешанные вкладки с пробелами? – TerryA

+2

Попробуйте запустить 'python -tt peasantlr.py'. – Bakuriu

+0

Возможно, новая строка не соответствует вашей ОС? – flup

ответ

4

Вы смешали вкладки с пробелами, которые вы не должны делать. За полями PEP 8 Style Guide используются больше вкладок, поэтому попробуйте использовать пробелы: D.

+0

Еще раз спасибо, сэр! – Jetlef

+0

@Jetlef Добро пожаловать :). – TerryA

+0

Отличный ответ @Haidro, хотя в соответствии с PEP 8 tabs только стиль кодирования прекрасен до тех пор, пока пробелы не отображаются, я использую только стиль вкладки, и он отлично работает – PurityLake

0

Проверьте наличие вкладок. Например: в обычном режиме vim, введите: /\t

+0

Я уже решил это, спасибо. Это действительно была единая таблица, которая нарушила код. – Jetlef

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