lenguaje - python wikipedia
"Uso inconsistente de pestañas y espacios en sangría" (14)
Intento crear una aplicación en Python 3.2 y uso pestañas todo el tiempo para la sangría, pero incluso el editor cambia algunas de ellas en espacios y luego imprime "uso inconsistente de pestañas y espacios en la sangría" cuando intento ejecutar el programa.
¿Cómo puedo cambiar los espacios en pestañas? Me esta volviendo loco. (Soy un principiante en programación). Me alegraría si pudiera obtener algunos consejos generales sobre mi código, si he hecho un montón de errores que estaría encantado de escuchar.
import random
attraktioner = ["frittfall","bergodalbana","spökhuset"]
class Nojesfalt:
def __init__(self, attraktion):
self.val = attraktion
self.langd = 0
self.alder = 0
#längdgräns för fritt fall
def langdgrans(self):
print("")
self.langd = int(input("Hur lång är du i cm? "))
if self.langd < 140:
print("tyvärr, du är för kort, prova något annat")
return 0
elif self.langd >= 140:
print("håll dig hatten, nu åker vi!")
print(" ")
return 1
#åldersgräns för spökhuset
def aldersgrans(self):
print("")
self.alder = int(input("Hur gammal är du? "))
if self.alder < 10:
print("tyvärr, du är för ung, prova något annat")
return 0
elif self.alder >= 10:
print("Gå in om du törs!")
print(" ")
return 1
#åker attraktion frittfall lr bergodalbana
def aka(self):
print("")
print(self.val)
tal = random.randint(0,100)
if tal < 20:
print("åkturen gick åt skogen, bättre lycka nästa gång")
elif tal >= 20:
print("jabbadabbbadoooooooo")
return 1
#går i spökhuset
def aka1(self):
print("")
print(self.val)
tal = random.randint(0,100)
if tal < 20:
print("du är omringad av spöken och kan inte fortsätta") return 0
elif tal >= 20:
print("Buhuuuuuu, buuuhuuuu")
return 1
#programkod
print("Välkommen till nöjesfältet, vad vill du göra?")
print(" ")
while 1:
vald_attr = input("Vad vill du göra?/n1. frittfall/n2. bergodalbana/n3. spökhuset/n4. Avsluta/n")
if vald_attr == "1":
val = Nojesfalt(attraktioner[0])
if val.langdgrans() == 1:
val.aka()
elif vald_attr == "2":
val = Nojesfalt(attraktioner[1])
val.aka()
elif vald_attr == "3":
val = Nojesfalt(attraktioner[2])
if val.aldersgrans() == 1:
val.aka1()
elif vald_attr == "4":
break
A veces, la tab
se estropea al sangrar. Una forma es usar obviamente la tab
y backspace
para sangrar correctamente el código.
Otra forma es usar el space
4 veces (dependiendo de la cantidad de sangría que desee).
Una forma extraña que funcionó para mí cuando nada más funcionaba, cualquiera fuese la línea que obtenía el error, backspaced
esa línea a la línea anterior y luego presioné enter
. Defectó automáticamente la línea para corregir la posición y no recibí ningún error después de eso.
Con suerte, esto debería ayudar.
Con el editor IDLE puedes usar esto
Editar -> Seleccionar todo
Formato -> Untabify Region
Suponiendo que su editor ha reemplazado 8 espacios con una pestaña, ingrese 8 en el cuadro de entrada.
Presione Seleccionar y arregla todo el documento.
En general, las personas prefieren sangrar con espacio. Es más uniforme en todos los editores, lo que resulta en menos desajustes de este tipo. Sin embargo, puedes sangrar con pestaña. Es tu elección; sin embargo, debe tener en cuenta que el estándar de 8 espacios por pestaña es un poco ancho.
Con respecto a su problema, lo más probable es que su editor haya cometido un error. Convertir tab en el espacio depende realmente del editor.
En emacs, por ejemplo, puede llamar al método ''untabify''.
En la línea de comandos, puede usar una línea sed (adapte el número de espacios a lo que le plazca):
sed -e ''s;/t; ;'' < yourFile.py > yourNedFile.py
Lo que hice cuando apareció el mismo error, seleccioné todo (Str + A) y presioné Shift + Tab. Así que ya no se sangra nada. Ahora regrese a las líneas, quiere sangrar y devolverlo como lo desee. Trabajó para mi...
No use pestañas.
- Configure su editor para usar 4 espacios para sangría.
- Haga una búsqueda y reemplace para reemplazar todas las pestañas con 4 espacios.
- Asegúrese de que su editor esté configurado para mostrar pestañas como 8 espacios.
Nota: El motivo de 8 espacios para pestañas es para que notes inmediatamente cuándo se insertaron las pestañas involuntariamente, como al copiar y pegar desde un código de ejemplo que usa pestañas en lugar de espacios.
Obtuve los mismos errores pero no pude entender lo que estaba haciendo mal.
Así que lo arreglé ejecutando auto-sangrado en mi código y permitiendo que la máquina solucionara mi error.
Si alguien se pregunta cómo lo hice. Sencillo. Entra en vim. Escriba en G = gg.
Esto arreglará automáticamente todo. Buena suerte :)
Recientemente tuve el mismo problema. Descubrí que solo necesitaba convertir el conjunto de caracteres del archivo .py a UTF-8 ya que ese es el conjunto que usa Python 3. Por cierto, utilicé pestañas de 4 espacios todo el tiempo, por lo que el problema no fue causado por ellos.
Resalta los bits sangrados y luego haz clic en las pestañas. Entonces se volverán consistentes :)
Si está utilizando texto sublime para el desarrollo de Python, puede evitar el error utilizando el paquete Anaconda.Después de instalar Anaconda, abra su archivo en sublime, haga clic derecho en los espacios abiertos-> seleccione anaconda-> haga clic en autoformat.DONE.Or Presione CTRL + ALT + R.
Su problema se debe a las limitaciones / configuración de su editor. Algunos editores le brindan herramientas para ayudar con el problema al:
a) convertir pestañas en espacios
Por ejemplo, si usa el editor de python de stani, puede configurarlo para que lo haga al guardar.
b) convertir espacios en pestañas
Si está usando ActiveState Komodo, tiene una herramienta para ''tabify'' su código. Como otros ya lo señalaron, esta no es una buena idea
Pydev de Eclipse proporciona funciones "Convertir pestañas en pestañas espaciales" y "Convertir pestañas espaciales en pestañas"
Tenía el mismo error. Tuve que agregar varias líneas de código al archivo * .py existente. En Notepad ++ no funcionó. Después de agregar las líneas de código y guardar obtuvo el mismo error. Cuando abrí el mismo archivo en PyCharm y agregué las líneas, el error desapareció.
Tuve el mismo problema cuando cambié a un editor diferente debido a algunos comportamientos en la forma en que se estaba ejecutando el código. Volví al editor anterior e hice las correcciones. Funcionó.
Sin embargo, quería agregar algo más, así que agregué más código y por alguna extraña razón ahora estoy obteniendo el error nuevamente. Estaba trabajando antes con el mismo editor.
Se queja de que la línea key = int(key)
tiene un problema de sangría.
Tuve este problema, solución: su ''pestaña'' antes de la línea del problema es espacios, 4,6 u 8 espacios. Usted debe prepararlos e insertar TAB. ''/ t''. Es todo
Uso Notepad ++ y obtuve este error.
En Notepad ++ verá que tanto la pestaña como los cuatro espacios son iguales, pero cuando copie el código en IDLLE de Python verá la diferencia y la línea con una pestaña tendrá más espacio antes que la otra.
Para resolver el problema, simplemente eliminé la pestaña antes de la línea y agregué cuatro espacios.