La diferencia entre python3 y Python2
Lo más importante en palabras de Cheng son las ideas de programación. Las ideas de Python3 y Python2 son básicamente universales, con solo algunas diferencias de sintaxis. En programación, la sintaxis es algo trivial. No importa si estudias 2 o 3. Las personas que conocen Python generalmente conocen 2 y 3. Cuando aprendas 3, solo necesitarás dedicar un poco de tiempo a aprender la gramática de 2, ¡y luego podrás aprender ambas pronunciaciones al mismo tiempo!
Función 1.print: imprimir ya no es una declaración, sino una función (en Python3, imprimir es una función y debe estar entre paréntesis; Imprimir es una clase en Python2). Por ejemplo, solía ser print'ABC', ahora es print('ABC')
La declaración de impresión de Python 2 ha sido reemplazada por la función print(), lo que significa que tenemos que encerrar el objeto que desea imprimir entre paréntesis.
2. En Python 3, no hay clases antiguas, solo clases nuevas, es decir, no hay necesidad de subclasificar explícitamente objetos como Foobar(object): pass.
Pero es mejor añadir algo. La principal diferencia es que el estilo antiguo es tipo de clase y el estilo nuevo es tipo.
3. Se reemplazará el nuevo formato del método de formato de cadena.
Error, este método se ha utilizado en str y unicode desde python2.6, python3 todavía admite el operador.
4.xrange pasa a llamarse rango.
Al mismo tiempo, se han cambiado una serie de funciones y métodos integrados, y todos devuelven objetos iteradores en lugar de listas o tuplas, como filtro, mapa, dict.items, etc.
5.long pasa a llamarse int
No exactamente. Python3 abandona por completo la implementación de enteros dobles int largos, los unifica como int y admite operaciones enteras de alta precisión.
6. La ejecución se convierte en una función
Un cambio como print() está precedido por una declaración.
7. Analizar la entrada del usuario a través de input(): (En Python3, la entrada obtiene str; el tipo de entrada de Python2 es int y el tipo raw_input de Python2 es str). Unifiquemos: Python3 usa input, Python2 usa row_input, que se ingresa en forma de str.
Afortunadamente, el problema de almacenar la entrada del usuario como objetos str se ha resuelto en Python 3. Para evitar el comportamiento peligroso de leer tipos que no son cadenas en Python 2, debemos usar raw_input() en su lugar.
8. Divisibilidad: (no tiene mucho impacto) (En Python3, / significa divisibilidad verdadera, indicando el resto, // significa divisibilidad piso (el resultado se redondea); en Python2, / significa según el divisor El número de decimales para obtener el resultado, // también significa dividir por el límite inferior). En Python3, / representa la división verdadera, que representa el resto, // y el resultado se redondea; Python2 tiene un punto decimal / representa la división verdadera, que representa el resto, // y el resultado se redondea;
Módulo 9.xrange:
En Python 3, la implementación de range() es similar a xrange(), por lo que ya no existe una función xrange() especial (en Python 3, xrange() genera una excepción con nombre).
Usar xrange() para crear objetos iterables es muy popular en Python 2. Por ejemplo, bucles For o derivación de lista/conjunto/diccionario.
Este comportamiento es muy parecido a un generador (por ejemplo, "comentario vago"). Pero este xrange-iterable es infinito, lo que significa que puedes iterarlo infinitamente.
Dado que la función xrange() es más lenta de calcular, la función xrange() es más rápida que la función range() si solo es necesario recorrerla una vez (como un bucle for). Aún así, no se recomienda iterar más de una vez, ya que el generador comienza desde cero cada vez.
Sólo una adición rápida.
Es principalmente un cambio en la biblioteca de clases. La estructura organizativa ha cambiado un poco, pero la función no ha cambiado. URL pase-》;Este cambio en urllib.parse
El cambio principal es que no dice que el soporte para bytes y cadenas Unicode nativas haya eliminado el objeto Unicode, str es una cadena UNICODE nativa y el carácter Sección reemplaza la cadena anterior, que es el núcleo.