cbrulak
Cuando compilo el código de Python a continuación, obtengo
IndentationError: unindent 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é?
psiyum
IMPORTANTE:
Los espacios son el método preferido – ver PEP 8 Sangría y ¿Tabulaciones o espacios?. (Gracias a @Siha por esto).
Para Texto sublime usuarios:
Colocar Texto sublime para usar tabulaciones para la sangría:
Vista –> Sangría –> Convertir sangría en tabulaciones
Desmarque la Aplicar sangría usando espacios opción también en el mismo submenú anterior. Esto resolverá inmediatamente este problema.
-
Además, cada vez que use Python, asegúrese de configurar una opción similar en cualquier IDE/Editor de texto que use
– psiyum
8 mayo 2014 a las 11:46
-
También en ATOM, Paquetes > Espacios en blanco > Convertir espacios en pestañas y evitará un dolor de cabeza por error de sintaxis de Python.
– loretoparisi
11 de marzo de 2015 a las 14:24
-
Los espacios son el método preferido – ver PEP008 Sangría y ¿Tabulaciones o espacios?. Sublime también se puede configurar para hacerlo de esta manera.
– Si Ha
6 de enero de 2016 a las 8:00
-
usted dice que los espacios son el método preferido, pero su respuesta le pide a la gente que le pida a sublime que use pestañas en su lugar. estoy confundido
– consiguió un
7 julio 2016 a las 10:14
-
@NunoCalaim Bueno, desafortunadamente, eso sucedió después de haber respondido la pregunta. Si está comenzando un nuevo proyecto, utilice la técnica preferida de espacios. Es por eso que hice una edición en negrita para que los recién llegados estén al tanto del descargo de responsabilidad.
– psiyum
7 julio 2016 a las 11:42
-
Intenté esto en un archivo con algún error de sangría de tabulación/espacio, pero ningún resultado con un archivo de tabulación incorrecto. ¿alguna idea?
– Luchux
16 de marzo de 2012 a las 3:32
-
Tuve un problema con los espacios y el error decía que estaba en la línea 191, pero gracias a tabnanny encontré que el verdadero problema no estaba en esa línea, sino en la línea de arriba.
– ricar8086
28 de febrero de 2019 a las 9:49
-
¡Gracias! Qué gran consejo. El error fue identificado por flake8 en VS Code pero no pudo identificar dónde el problema era que tabnanny lo hizo en un microsegundo.
–Steve
26 sep 2019 a las 22:45
zdan
¿Está seguro de que no está mezclando tabulaciones y espacios en su espacio en blanco de sangría? (Eso causará ese error).
Tenga en cuenta que se recomienda que no use pestañas en el código de Python. Ver el guía de estilo. Debe configurar Notepad ++ para insertar espacios para pestañas.
-
Estoy confundido. La respuesta anterior indica cambiar una opción de editor de texto para usar tabulaciones en lugar de espacios.
– espuela
8 oct 2015 a las 16:31
-
@BananaCode Mientras use SOLO tabulaciones o SOLO espacios, técnicamente no importa cuál elija. Aunque para python, se prefieren los espacios, vea el enlace al que me referí.
– zdan
8 oct 2015 a las 17:54
Dana
Cada vez que encuentro este error, es porque de alguna manera mezclé tabulaciones y espacios en mi editor.
-
Estoy confundido. La respuesta anterior indica cambiar una opción de editor de texto para usar tabulaciones en lugar de espacios.
– espuela
8 oct 2015 a las 16:31
-
@BananaCode Mientras use SOLO tabulaciones o SOLO espacios, técnicamente no importa cuál elija. Aunque para python, se prefieren los espacios, vea el enlace al que me referí.
– zdan
8 oct 2015 a las 17:54
cbartondock
Si está utilizando Vim, presione escape y luego escriba
gg = G
Este auto lo sangra todo y borrará cualquier espacio que hayas dejado.
Tuve el mismo error, pero se me ocurrió sangrar un método. Dirigirte en el código ligeramente a la izquierda, lo que dio este error en la parte inferior de la próximo método después de eso. Entonces, este error puede ocurrir no solo al mezclar tabulaciones y espacios.
– Profesor Falken
2 de noviembre de 2012 a las 12:41
Estoy usando Sublime Text 3. Tengo un proyecto Django. Arreglé el error usando
View > Indentation > Intent Using Spaces
– abhimanyuaryan
11 de marzo de 2016 a las 17:08
Descubrí que usar IDLE hace que sea mucho más fácil encontrar problemas de sangría. Claramente encontrará errores de sangría que la mayoría de los editores no encontrarán.
-Dennis Gathagu
16 de enero de 2020 a las 13:56
Sublime 3.2.2: Ver> Sangría> Convertir sangría en espacios: funcionó para mí
– Impermanencia
28 de agosto de 2020 a las 5:48
Puede ver el problema mirando la fuente de Markdown: tiene pestañas que preceden a las últimas tres líneas. Desafortunadamente, Stack Overflow convierte las pestañas a 4 espacios en el renderizado, por lo que el problema desaparece.
– wjandrea
17 de febrero de 2022 a las 3:47