IndentationError: la eliminación de sangría no coincide con ningún nivel de sangría exterior, aunque la sangría parece correcta [duplicado]

Resuelto cbrulak asked hace 15 años • 32 respuestas

Cuando compilo el código Python a continuación, obtengo

IndentationError: la eliminación de sangría no coincide con ningún nivel de sangría exterior


import sys

def Factorial(n): # Return factorial
    result = 1
    for i in range (1,n):
        result = result * i
    print "factorial is ",result
    return result

¿Por qué?

cbrulak avatar Jan 29 '09 23:01 cbrulak
Aceptado

Una posible causa de este error es que puede haber espacios mezclados con tabulaciones para sangría. Intente realizar una búsqueda y reemplazo para reemplazar todas las pestañas con unos pocos espacios.

Prueba esto:

import sys

def Factorial(n): # return factorial
    result = 1
    for i in range (1,n):
        result = result * i
    print "factorial is ",result
    return result

print Factorial(10)
Kevin Tighe avatar Jan 29 '2009 16:01 Kevin Tighe

Importante :

Los espacios son el método preferido ; consulte PEP 8 ¿ Sangría y tabulaciones o espacios? . (Gracias a @Siha por esto).

Para usuarios de Sublime Text :

Configure Sublime Text para usar pestañas para sangría: Vista de menú → SangríaConvertir sangría en pestañas

Desmarque también la opción Sangrar usando espacios en el mismo submenú anterior. Esto resolverá inmediatamente este problema.

psiyumm avatar May 08 '2014 11:05 psiyumm

Para comprobar fácilmente si hay problemas con tabulaciones/espacios, puedes hacer esto:

python -m tabnanny yourfile.py

o simplemente puedes configurar tu editor correctamente, por supuesto :-)

André avatar Feb 04 '2009 21:02 André