IndentationError: la eliminación de sangría no coincide con ningún nivel de sangría exterior, aunque la sangría parece correcta [duplicado]
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é?
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)
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ía → Convertir sangría en pestañas
Desmarque también la opción Sangrar usando espacios en el mismo submenú anterior. Esto resolverá inmediatamente este problema.
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 :-)