Underc0de - La Casa de los Informáticos

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Knaya en Diciembre 20, 2013, 11:37:47 AM

Título: [SOLUCIONADO] Indetation error: unexpected indent
Publicado por: Knaya en Diciembre 20, 2013, 11:37:47 AM
Estoy comenzando un curso rápido de python y dieron un ejercicio para hacer con 2 errores. Una forma de que funcione ya encontré, pero la otra no me funciona y hasta la colocan como posible solución, ahora me quedó la espina de porque no funciona de este modo y me interesa más que aprender python  >:(  paso a explicar....

Código (python) [Seleccionar]
# -*- coding: utf-8 -*-

class Modelo:

    def __init__(self):
        self.divisor = 23
        vac = raw_input("Elige un numero entero entre 0 y 100: ");          XXXXXXXXXXXXXX estas 2 lineas son las que generan el problema
valor = int(vac);                                                                               XXXXXXXXXXXXXX porque si coloco valor = int( raw_inputxxx ) FUNCIONA...
        resultado = self.devolver_resultado(valor)
        print "%d/%d es %d" % (valor, self.divisor, resultado)

    def devolver_resultado(self, numero):
        """Divide el núemro por el divisor y devuelve un entero"""
        resultado = numero//self.divisor
        return resultado

obj = Modelo()


Al correrlo da error de INDENTATION ERROR: UNEXPECTED INDENT
Alguien tiene idea de porque se genera esto?
Título: Re:[Python]Problema tonto....
Publicado por: overxfl0w13 en Diciembre 20, 2013, 12:13:28 PM
Código (python) [Seleccionar]
# -*- coding: utf-8 -*-

class Modelo:

    def __init__(self):
        self.divisor = 23
        vac = raw_input("Elige un numero entero entre 0 y 100: ")
        valor = int(vac)
        resultado = self.devolver_resultado(valor)
        print "%d/%d es %d" % (valor, self.divisor, resultado)

    def devolver_resultado(self, numero):
        """Divide el núemro por el divisor y devuelve un entero"""
        resultado = numero//self.divisor
        return resultado

obj = Modelo()


A veces dependiendo del IDE que uses te bailan caracteres ocultos tipo espacios y tabuladores. Normalmente si borras los espacios de la linea hasta que se junte con la linea superior y das un salto de linea para situarla otra vez en el sitio estos problemas se solucionan en IDES con autoindentación.
Título: Re:[Python]Problema tonto....
Publicado por: WhiZ en Diciembre 20, 2013, 02:40:05 PM
Te recomiendo un IDE que a mi particularmente me gusta mucho -> Sublime text

Con él vas a ver que te podes olvidar de los problemas de indentación. Trae la posibilidad de transformar todo a espacios o  tabulaciones, según prefieras, ademas de presentar la autoindentación que mencionaba overxfl0w13.

Saludos.
WhiZ
Título: Re:[Python]Problema tonto....
Publicado por: Knaya en Diciembre 26, 2013, 10:02:28 AM
Increible pero cierto!!
Son los espacios o tabulaciones el problema, yo estaba usando el notepad++ y ni cuenta me di.
Voy a probar el sublime....
Gracias por las respuestas!