Error Python! Basico


Python Basico!!!

Estaba leyendo el manual de 0 a Python de HackxCrack y bueno entendí segun mi poca experiencia lo importante de saber manejar un error ya sea programando, administrando un servidor o simplemente instalando un paquete, próximamente cuando me desocupe escribiré mas cosas como estas….Que por lo menos a mi siempre me han funcionado!

Mala indentación!

El primero error que vamos a tratar es el de la indentación, y es que es uno de los mas comunes por ejemplo la simple:

Python 2.7.3 (default, Jan  2 2013, 16:53:07) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>  a=2
  File "<stdin>", line 1
    a=2
    ^
IndentationError: unexpected indent

donde “>>>  a=2”    lo unico qu e tiene mal es un espacio entre “>>>” y “a=2” y nada mas por eso no va a correr el programa o script, python no tiene un debug nativo como c o c++ pero si vemos el codigo de nuevo observamos que nos dice exactamente donde esta el error:

a=2
^
IndentationError: unexpected indent

y bueno revisaremos la “a” y debemos agarrar un poco de practica sabiendo que debemos cuidar los espacios, esto se complica aun mas cuando copiamos y pegamos código de paginas y aun nos complicamos mas cuando el autor no coloca dentro de ni siquiera un bbcode su código!!!

Aun es peor cuando usamos “tabulación” y se nos escapa un “espacio” por ejemplo al usar(ejemplos sacados del cuaderno HackxCrack):

numero=raw_input('Cuanto es 1+1? ')

if (len(numero)==0):

print 'No has introducido nada'

elif(numero!='2'):

print 'NOOO, te has equivocado'

else:

print 'si, has acertado '

Si nos fijamos bien o creamos el archivo suma.py con el código anterior notaremos que el primer error es:

File "suma.py", line 4

elif(numero!='2'):

^

SyntaxError: invalid syntax

Aunque donde dice que hemos indentado mal, el segundo seria:

File "suma.py", line 6

else:

^

IndentationError: unindent does not match any outer indentation level

Y aquí si nos dice claramente que el problema es una indentación mala en la linea 6 concretamente con el “else” y solo quedaría verificar la indentación en esa linea!

Por ejemplo el siguiente seudo código complica un poco mas la cosa también sacado del cuaderno, aunque esta ves lo escribiré bien por que no es posible usarlo en el interprete:

El código es para definir una función!

def funcion():

codigo # 1 tabulador no inventen usando 5 espacios!!!

cofigo

codigo

..........

condicional:

codigo_del_condicional

codigo_del_condicional

codigo_del_condicional

codigo

codigo

Fíjense en que luego de “def funcion” no hay otro “codigo” pegado a la izquierda de la hoja, solo habrá 1 cuando se termine de definir la función se comience otra o se cree el código que posiblemente usara esta función!

Ahora vean como “codigo” siempre tiene la misma Jerarquía que “codigo” siempre y cuando no este dentro de un bucle! Ya que si nos fijamos “codigo_del_condicional” es el mismo “codigo” pero pertenece a el “condicional”!

Por ahora lo dejo hasta aquí, mas adelante veremos posibles errores de python2 con python3 y como solucionarlos 😀

Anuncios

2 pensamientos en “Error Python! Basico

  1. Buen aporte
    Yo estoy empezando programar en python y estoy haciendo un buscador dandole parametros desde el shell que busque un archivo entre al archivo y me muestre si esta el contenido indicado y me de la ruta pero si la palabra no esta de primera no recorre la cadena de texto hasta ahora llevo esto
    import os
    import sys
    print “El directorio actual es:”, os.path.curdir
    print ” (y su ruta absoluta es):”, os.path.abspath(os.path.curdir)
    print “”
    print “El script actual es:”, __file__
    print ” (y su ruta es):”, os.path.abspath(__file__), “\n”

    if(len(sys.argv) > 2):
    if sys.argv[1]:
    print “Abriendo ” + sys.argv[1]
    archivo = sys.argv[1]
    palabra = sys.argv[2]
    repetidas = 0
    f = open(sys.argv[1])
    lines = f.readlines()
    for line in lines:
    palabras = line.split(‘ ‘)
    for p in palabras:
    if p == palabra:
    repetidas = repetidas + 1
    print “la palabra \”{0}\” se repite {1} veces en el Archivo {2}”.format(palabra,repetidas,archivo)
    else:
    print “Debes indicar el nombre del archivo”
    si me puede echar una mano te lo agradeceria

    Me gusta

    • Lo primero que se me viene a la mente es organizar un poco el código, te recomiendo darle una vuelta este muy buen tutorial practico de python http://www.programando.org/aprende-a-programar/ te lo digo por que a medida que vaya creciendo el programa no lo podrás usar así y tendrás que hacer todo de nuevo :S

      Creo que vi un navegador por alli en python, y bueno si existe ya algo solo deberíamos mejorarlo si es gpl, adaptarlo a nuestras necesidades, lo que si estoy seguro es que existe un navegador en consola y esta muy completo deberias hecharle un ojo aunque no recuerdo el enlace…. bash y python se parecen mucho…

      Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s