Diferencias sintácticas entre python 2.x y 3.x

Hola a tod@s, esto no es un tutorial normal y corriente, por eso el título no lleva numeración, simplemente, me he dado cuenta de que hay lectores de este blog que usan python 3.x, cuando yo aquí, los ejemplos dados y todo, esta orientado a python 2.x, y claro, no quiero que cada día haya gente que pruebe un ejemplo y no le funcione por que tiene una versión diferente, de esta forma solucionamos errores futuros.





Tranquilos, las diferencias en cuanto a la sintaxis son mínimas, prácticamente son los print y las entradas del usuario:

Python 2.x:
          
        #print es una palabra clave del lenguaje seguido de lo que vaya a mostrar
        print "hola mundo"


        #con la función input() obtenemos datos numéricos a través del teclado(de 
        #tipo int)
        num=input("introduce un numero")
        print num

        #con la función raw_input() obtenemos una cadena de texto tecleada por el 
          #usuario (de tipo string)
        name=raw_input("introduce tu nombre")
        print name

Python 3.x:


        #como veis print pasa a ser una función, por eso se usan "()"
        print("hola mundo")

        #con la funcion input() obtenemos una cadena de texto tecleada 
        #por el usuario (equivalente a raw_input() de python 2.x)

        name=input("introduce tu nombre")
        print name

        #en python 3 no existe ninguna función para obtener datos numéricos a 
        #través del teclado, la solución es obtener un número como una cadena de texto 
         #y después convertirlo en un número entero con la función int():
          
        num=int(input("introduce un numero"))

La función int, convierte un número en formato de texto como "5" en un entero como 5, entonces lo que hacemos es convertir el resultado de input() en un entero, seria el equivalente a un input() en python 2.x.

También existen módulos y funciones que no son compatibles como la función "reduce" que ha sido eliminada ya que la comunidad python alega que produce código ilegible.

Como veis básicamente los cambios son en el print y en las funciones input() y raw_input(), en realidad técnicamente hay muchas mas cosas, mas rapidez, diferencias en memoria... pero las diferencias a la hora de programar prácticamente son estas.

Bueno chic@s, después de este pequeño espacio que he dedicado, espero que hayan sido aclaradas las dudas sobre las diferencias entre python 2.x y python 3.x, mi recomendación es que usen 2.x ya que la 3.x aún es demasiado reciente, tan solo es mi humilde opinión, un abrazo a tod@s, hasta mañana.


1 comentarios:

Anónimo dijo...

Gracias pense que me estaba volviendo loco, como estaba mirando codigo java, ruby, y no lograba imprimir hola mundo ni con doble y una comilla etc, luego probe por las dudas con parentesis, y al mismo tiempo encontre este hermoso blog, que trataba el tema, un abrazo! aguante pygame!