PDF de programación - Inmersión en Python 3

Imágen de pdf Inmersión en Python 3

Inmersión en Python 3gráfica de visualizaciones

Actualizado el 28 de Junio del 2021 (Publicado el 14 de Enero del 2017)
6.224 visualizaciones desde el 14 de Enero del 2017
3,4 MB
339 paginas
Creado hace 14a (05/02/2010)
.

Inmersión en Python 3
por Mark Pilgrim
Copyright c2009.

Traducción al español: José Miguel González Aguilera
Copyright de la traducción c2009.
Website de la traducción: http://code.google.com/p/inmersionenpython3

Agradecimientos del Traductor:
A Mark Pilgrim.
A Nieves, Alba y a Miguel.

Licencia:

Este trabajo está licenciado bajo la licencia de Reconocimiento-No comercial-Compartir
bajo la misma licencia Creative Commons 3.0 España. Para ver una copia de esta
licencia, visita http://creativecommons.org/licenses/by-nc-sa/3.0/es/ o envía una
carta a Creative Commons, 171 Second Street, Suite 300, San Francisco, California,
94105, USA.

A continuación se muestra un resumen de la licencia.

Usted es libre de:

Compartir — copiar, distribuir y comunicar públicamente la obra

Rehacer — hacer obras derivadas

Bajo las condiciones siguientes:

Reconocimiento. Debe reconocer los créditos de la obra de la manera especificada
por el autor o el licenciador (pero no de una manera que sugiera que tiene su
apoyo o apoyan el uso que hacer de su obra).

No comercial. No puede utilizar esta obra para fines comerciales.

Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera
una obra derivada, sólo puede distribuir la obra generada bajo una licencia
idéntica a ésta.

Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia
de esta obra.

Alguna de las condiciones puede no aplicarse si se obtiene el permiso del titular de
los derechos de esta obra.

Nada en esta licencia menoscaba o restringe los derechos morales del autor.

Capítulo -1

Novedades de “Inmersión en
Python 3”

“¿No es de aquí de donde venimos?”
—Pink Floyd, The Wall

-1.1. Alias “Bajo el nivel del mar”

Posiblemente hayas leído el libro original Dive into Python y puede que hasta
lo hayas comprado. (Si es el caso: ¡gracias!) Ya conoces bastante el lenguaje Python.
Estás preparado para dar el salto a Python 3. . . . Si lo dicho es cierto, sigue leyendo.
(Si no es así, tal vez sea mejor que comiences desde el principio en el capítulo ??).

Python 3 viene con un script denominado 2to3. Aprende a usarlo y a quererlo.
El apéndice ?? es una referencia sobre las cosas que la herramienta 2to3 puede
arreglar automáticamente en la conversión del código de la versión 2 a la 3 de python.
Puesto que muchas cosas son cambios de sintaxis, una buena forma de comenzar es
aprender estas diferencias. Por ejemplo: print ahora es una función. . .

El caso de estudio del capítulo ?? documenta mi esfuerzo (¡al fin cumplido con
éxito!) de convertir una librería real de Python 2 a Python 3. Puede servirte o no. Es
un ejemplo complejo de entender puesto que en primer lugar tienes que comprender
algo el funcionamiento de la librería, de forma que puedas entender lo que deja de
funcionar y como lo arreglé. Mucho de lo que se rompió al pasar a la versión 3 de
Python fue por causa de las cadenas. Por cierto, hablando de cadenas. . .

Cadenas. ¡Uff!. Por dónde podría empezar. Python 2 tenía “cadenas” y “ca-
denas unicode”. Python 3 tiene “bytes” y “cadenas”. Lo que significa que todas las

1

2

CAPÍTULO -1. NOVEDADES DE “INMERSI ÓN EN PYTHON 3”

cadenas ahora son unicode, y si quieres trabajar con un puñado de bytes tienes que
usar el tipo bold bytes.

Python 3 nunca convertirá implícitamente entre cadenas y bytes, por lo que
si no estas seguro de lo que contiene una variable en un momento dado, el código
seguro que fallará en algún momento. Lee el capítulo 4 sobre cadenas para conocer
los detalles.

La división entre “bytes” y “cadenas” surgirá en diversas partes del libro:

1. En el capítulo 11 dedicado a los ficheros, aprenderás la diferencia entre leer
ficheros en modo binario o en modo texto. La lectura (y escritura) de ficheros
en modo texto requiere que se utilice el parámetro encoding. Existen métodos
que cuentan los caracteres de un fichero y métodos que cuentan bytes. Si el
código asume que un carácter es igual a un byte, no funcionará cuando el
fichero contenga caracteres multibyte1.

2. En el capítulo ?? dedicado a los servicios web n http, se muestra el módulo
httplib2 que lee cabeceras y datos de HTTP. Las cabeceras se obtienen como
cadenas, pero el contenido del cuerpo se obtiene como bytes.

3. En el capítulo ?? aprenderás el motivo por el que el módulo pickle de Python
3 define un formato de datos nuevo que es incompatible con Python 2 (Pista:
Se debe a los bytes y cadenas). También afecta al módulo JSON, que no es
capaz de manejar el tipo bytes. Te enseñaré como salvar este escollo.

4. En el capítulo ?? sobre la conversión de la librería chardet a Python 3 se
verá que la mayor parte de los problemas de conversión provienen de los bytes
y cadenas.

Incluso aunque no tengas interés en Unicode, ¡que tendrás!, querrás leer sobre
el formateo de cadenas en Python 3 en el capítulo ??, que es completamente diferente
a Python 2.

Los iteradores están en todas partes en Python 3, y ahora los entiendo mucho
mejor que hace cinco años cuando escribí “Inmersión en Python”. Debes compren-
derlos tú también, puesto que muchas funciones que anteriormente retornaban listas
ahora, en Python 3, devuelven iteradores. Como mínimo, deberías leer la segunda
parte del capítulo ?? dedicado a los iteradores y la segunda parte del capítulo ??
sobre el uso avanzado de los iteradores.

Por petición popular, he añadido el apéndice ?? sobre nombres de método
especiales que guarda cierta similitud con el apartado similar de la documentación
oficial de Python 3 pero con cierta ironía.

1En unicode muchos caracteres se representan utilizando más de un byte

-1.1. ALIAS “BAJO EL NIVEL DEL MAR”

3

Cuando estaba escribiendo “Inmersión en Python” todas las librerías de XML
disponibles eran bastante malas. Entonces Fedrik Lundh escribió bold Element-
Tree, que es todo lo contrario a lo existente anteriormente. Los dioses de Python,
actuando inteligentemente, incorporaron ElementTree a la librería estándar. Ahora
esta librería es el fundamento del capítulo 12 sobre XML. Los viejos métodos para
recorrer XML están aún disponibles, pero deberías evitarlos, ¡apestan!

Algo que es también nuevo —no en el lenguaje, pero sí en la comunidad— es
la creación de repositorios de código como el índice de paquetes de python (PyPI).
Python dispone de utilidades para empaquetar el código en formatos estándares y
distribuirlos en PyPI. Lee el capítulo ?? sobre cómo empaquetar librerías en Python.

4

CAPÍTULO -1. NOVEDADES DE “INMERSI ÓN EN PYTHON 3”

Capítulo 0

Instalación de Python

Nivel de dificultad:

0.1.

Inmersión

“Tempora mutantur nos et mutamur in illis”
(Los tiempos cambian, y nosotros cambiamos con ellos)
—antiguo proverbio romano

Bienvenido a Python 3. ¡Vamos a mojarnos! En este capítulo, vas a instalar la

versión de Python adecuada para ti.

0.2.

¿Cuál es la versión adecuada para ti?

Lo primero que necesitas hacer es instalar Python 3.

Si estás utilizando una sesión en un servidor remoto (posiblemente a través
de Internet), el administrador del servidor puede que ya lo haya instalado por ti. Si
estás utilizando Linux1 en casa, puede que también lo tengas ya instalado, aunque
actualmente2 la mayor parte de las distribuciones de Linux vienen con Python 2
instalado (como verás en este capítulo, puedes tener simultáneamente más de una
versión de Python en tu ordenador sin problemas). En los Mac OS X se incluye una
versión de línea de comando de Python 2, pero no Python 3. Microsoft Windows no

1Nota del Traductor: El nombre correcto del sistema operativo Linux es GNU/Linux, no obs-

tante, por comodidad, en este libro se utilizará únicamente Linux para mayor comodidad

2año 2009

5

6

CAPÍTULO 0. INSTALACI ÓN DE PYTHON

trae ninguna versión de Python. Pero ¡no te preocupes! siempre puedes instalarlo
tú mismo, tengas el sistema operativo que tengas.

La forma más sencilla para comprobar si tienes instalado Python 3 en tu
sistema Linux o Mac OS X es abrir un terminal de línea de comandos. Para ello
debes hacer lo siguiente:

Si estás en Linux, busca en el menú de Aplicaciones un programa denominado
terminal (puede estar en un submenú, posiblemente Accesorios o Sistema).

Si estás en Mac OS X, existe una aplicación que se llama Terminal.app en la
carpeta /Aplicaciones/Utilidades/.

Una vez te encuentres en la línea de comando3, teclea python3 (en minúsculas
y sin espacios) y observa lo que sucede. En mi sistema Linux, Python 3 ya está ins-
talado, por lo que el resultado de ejecutar este comando hace que el terminal entre
en la consola4 interactiva de Python.

jmgaguilera@acerNetbook-jmga:~$ python3
Python 3.0.1+ (r301:69556, Apr 15 2009, 15:59:22)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

(Para salir de la consola interactiva de Python escribe exit() y pulsa la tecla

INTRO.)

Al ejecutar esta misma sentencia python3 en un ordenador Linux que no tenga

instalado Python 3 el mensaje que se obtendrá será parecido al siguiente:

jmgaguilera@acerNetbook-jmga:~$ python3
bash: python3: orden no encontrada
jmgaguilera@acerNetbook-jmga:~$ python3

Bueno, volviendo ahora a la pregunta sobre cuál es la versión de Python 3
apropiada para ti, queda claro que es aquella que se ejecute en el ordenador que
tengas.

Para conocer cómo instalar Python 3, continúa leyendo en el apartado que

corresponda a tu sistema operativo.

3También conocido como el “prompt”
4En inglés “shell”

0.3. INSTALACI ÓN EN MICROSOFT WINDOWS

7

0.3.

Instalación en Microsoft Windows

Windows se ejecuta actualmente en dos plataformas diferentes: 32 y 64 bits.
Asimismo, existen diferentes versiones de Windows —XP, Vista, Windows 7— y
Python 3 funciona en todas ellas. Es más importante, con vistas a la instalación, la
distinción que existe entre los dos tipo
  • Links de descarga
http://lwp-l.com/pdf433

Comentarios de: Inmersión en Python 3 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad