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

Iniciado por ANTRAX, Septiembre 07, 2014, 01:52:37 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.


Ultimamente se ha visto a Python 3.x con mayor fuerza, y muchos se preguntan cuales son las diferencias entre uno y otro en cuanto a la sintaxys.
Las diferencias no son muchos, solo se ven en el print y en los input

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



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


Código: python
#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:


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


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


Código: ruby
name=input("introduce tu nombre")
print name


Código: python
#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():

         
Código: python
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.

Fuente: aprendepythonvolando


Antrax buena aportación, hubo algo que me gusto mucho, fué que se puede importar en python 2.x un módulo para utilizar "print" como función, como si se tratara de python 3.x

Código: php
from __future__ import print_function

print("hola","mundo",end="\n",sep="//")


y poder utilizar esto en python 2.x esta fenomenal.