in

Diferencias importantes entre Python 2.xy Python 3.x con ejemplos

gfg 200x200 min

Operador de división

Si estamos portando nuestro código o ejecutando código python 3.x en python 2.x, puede ser peligroso si los cambios en la división de enteros pasan desapercibidos (ya que no generan ningún error). Se prefiere usar el valor flotante (como 7.0 / 5 o 7 / 5.0) para obtener el resultado esperado al portar nuestro código.

Pitón

print 7 / 5

print -7 / 5

  

  

función de impresión

Este es el cambio más conocido. En esto, el impresión La palabra clave en Python 2.x se reemplaza por la impresión() función en Python 3.x. Sin embargo, los paréntesis funcionan en Python 2 si se agrega espacio después de la impresión palabra clave porque el intérprete la evalúa como una expresión.

Pitón

print 'Hello, Geeks'

print('Hope You like these facts')

  

  

    

                       

  

Como podemos ver, si usamos paréntesis en python 2.x, entonces no hay problema, pero si no usamos paréntesis en python 3.x, obtenemos SyntaxError.

Unicode:

En Python 2, un tipo str implícito es ASCII. Pero en Python 3.x, el tipo str implícito es Unicode.

Pitón

print(type('default string '))

print(type(b'string with b '))

  

  

Python 2.x también es compatible con Unicode

Pitón

print(type('default string '))

print(type(u'string with b '))

  

  

xrange:

xrange () de Python 2.x no existe en Python 3.x. En Python 2.x, range devuelve una lista, es decir, range (3) devuelve [0, 1, 2] mientras que xrange devuelve un objeto xrange, es decir, xrange (3) devuelve un objeto iterador que funciona de forma similar al iterador Java y genera un número cuando es necesario.
Si necesitamos iterar sobre la misma secuencia varias veces, preferimos range () ya que range proporciona una lista estática. xrange () reconstruye la secuencia cada vez. xrange () no admite segmentos ni otros métodos de lista. La ventaja de xrange () es que ahorra memoria cuando la tarea es iterar sobre un rango grande.
En Python 3.x, la función de rango ahora hace lo que hace xrange en Python 2.x, por lo que para mantener nuestro código portátil, es posible que queramos utilizar un rango en su lugar. Entonces, la función de rango de Python 3.x es xrange de Python 2.x.

Pitón

for x in xrange(1, 5):

    print(x),

  

for x in range(1, 5):

    print(x),

  

  

Manejo de errores:

Hay un pequeño cambio en el manejo de errores en ambas versiones. En python 3.x, se requiere la palabra clave ‘as’.

Pitón

try:

    trying_to_check_error

except NameError, err:

    print err, 'Error Caused'

  

  

    

                    

Pitón

try:

     trying_to_check_error

except NameError as err:

     print (err, 'Error Caused')

  

  

Módulo __future__:

Básicamente, esto no es una diferencia entre las dos versiones, pero es útil mencionarlo aquí. La idea del módulo __future__ es ayudar a migrar a Python 3.x.
Si estamos planeando tener soporte para Python 3.x en nuestro código 2.x, podemos usar _futuro_ importaciones en nuestro código.
Por ejemplo, en el código de Python 2.x a continuación, usamos el comportamiento de división de enteros de Python 3.x usando el módulo __future__.

Pitón

from __future__ import division

  

print 7 / 5

print -7 / 5

Producción :

1.4 

-1.4 

Otro ejemplo donde usamos corchetes en Python 2.x usando el módulo __future__:

Pitón

from __future__ import print_function    

  

print('GeeksforGeeks')

Producción:

GeeksforGeeks 

Referirse a esta para obtener más detalles del módulo __future__.

Este artículo es una contribución de Arpit Agarwal. Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo a contrib@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.

¡Atención geek! Fortalece tus cimientos con el Fundación de programación de Python Curso y aprende los conceptos básicos.

Para empezar, los preparativos de su entrevista Mejore sus conceptos de estructuras de datos con el Python DS Curso. Y para comenzar con su viaje de aprendizaje automático, únase al Aprendizaje automático – Curso de nivel básico

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

apple touch icon@2

¿Cómo generar un int aleatorio en C?

edit

Anexo vs Apéndice – Diferencia y comparación