Marco Buttu

El gran libro de Python


Скачать книгу

De hecho, en estos ejercicios se podrá ver cómo realizar el análisis de argumentos desde la línea de comandos, crear programas portables que puedan funcionar igual en todos los sistemas operativos, trabajar con fechas, utilizar los comodines y las expresiones regulares y realizar el desarrollo guiado por pruebas, entre otras aplicaciones.

      Cada ejercicio empieza mostrando el código -que tras una primera lectura seguramente parecerá del todo incomprensible- y continúa con la explicación del significado de cada línea, de manera que, al finalizar, todos los puntos estén claros para el lector. La parte final del libro está formada por tres apéndices. El apéndice A describe los comandos Unix-like utilizados en el libro; el apéndice B, los principales puntos de rotura entre Python 2 y Python 3, y el apéndice C, el proceso de buffering de los archivos.

      Material y contactos

      El código fuente de los ejercicios finales y las soluciones están disponibles en internet, en la dirección:

      http://code.google.com/p/the-pythonic-way/

      Para cualquier aclaración, o simplemente, para intercambiar opiniones, pueden ponerse en contacto con el autor mediante un e-mail a su dirección de correo electrónico:

      [email protected]

      indicando en el asunto el texto Python - Guida completa.

      Agradecimientos

      El autor dedica este libro a Micky, su irremplazable otra mitad, y le agradece la paciencia y la comprensión. Sin su ayuda no habría sido posible escribir este libro.

      Muchas gracias también a todas aquellas personas que han pasado su tiempo inter-cambiando opiniones con el autor acerca de Python, particularmente a Steven D’Aprano, por su participación en el grupo de discusión comp.lang.python y en la mailing list python-ideas.

      El autor quiere dar las gracias también a Andrea Saba, Franco Buffa y Marco Bartolini por todos los consejos útiles.

      1

      Los fundamentos del lenguaje

      En este capítulo construiremos sólidos fundamentos práctico-teóricos que nos permitirán ser rápidamente productivos. Presentaremos paso a paso distintos temas: objetos integrados, módulos, archivos, funciones, clases y librerías estándar. El objetivo es ambicioso: proporcionar las bases a quien quiere aprender a programar correctamente con Python y, al mismo tiempo, ofrecer ideas interesantes a los programadores de Python más experimentados.

      Python nace en diciembre de 1989 de manos del informático holandés Guido van Rossum.

      Tras haber estado trabajando durante cuatro años (de 1982 a 1986) en el desarrollo del lenguaje de programación ABC, en el Centrum voor Wiskunde & Informatica (CWI) de Amsterdam, en 1986 Guido empieza a colaborar en el desarrollo de Amoeba, un sistema operativo distribuido nacido también en Amsterdam (1981), en la Vrije Universiteit. A finales de los ochenta, el equipo se da cuenta de que Amoeba necesita un lenguaje de scripting, por lo que Guido, mientras pasa las vacaciones de Navidad de 1989 en su casa, tanto por hobby como por contribuir en el desarrollo de Amoeba, decide poner en marcha un proyecto personal.

      Intenta utilizar todo cuanto ha aprendido durante el tiempo de trabajo con ABC y, aunque aquella experiencia fue más bien frustrante, algunas de las carácterísticas de ABC le gustan y decide utilizarlas como fundamentos para su nuevo lenguaje:

      • la sangría para indicar los bloques de instrucciones anidadas;

      • alguna instrucción de variables;

      • cadenas de caracteres y listas de longitud arbitraria.

      Sobre estas bases empieza a escribir en C un intérprete para su futuro lenguaje de programación, que bautiza con el nombre de Python en honor a su serie de televisión favorita: Monty Python’s Flying Circus.

      En 1990, Guido finaliza la primera implementación del intérprete, que implanta en la CWI para uso interno. En febrero de 1991, hace público el código en alt.sources, indicando como versión la 0.9.0. En 1994 se crea comp.lang.python, el primer grupo de discusión sobre Python, y el año siguiente nace el sitio web oficial: www.python.org.

      Desarrollo de Python

      Python es desarrollado, mantenido e implantado por un grupo de personas coordinado por Guido van Rossum, quien tiene la última palabra en las decisiones relacionadas tanto con el lenguaje como con las librerías estándar. Por este motivo, en 1995, se otorgó a Guido el título de Benevolent Dictator For Life (BDFL). El 6 de marzo de 2001 se funda la Python Software Foundation (PSF), una organización sin ánimo de lucro que tiene los derechos de autor sobre Python y promueve su difusión. La PSF está presidida por Guido van Rossum y cuenta entre sus miembros con el núcleo de los desarrolladores de Python, entre muchas otras personalidades denominadas en virtud de su notable contribución en el lenguaje.

      Las major version (las versiones principales, aquellas que se distinguen por el primer número de la versión, denominado major number) se van lanzando con distintos años de separación unas de otras. Así, la 1.0 sale en 1994, la 2.0, en el año 2000 y la 3.0, en 2008. En cambio, las minor version (las versiones menores, aquellas que tienen el mismo major number y se diferencian por el primer número después del punto) aparecen cada uno o dos años.

      Las funcionalidades que se añaden a las minor version son retrocompatibles, lo que significa que todo el código escrito para una versiones menores funcionará del mismo modo también en las sucesivas. Por tanto, el código escrito para la versión 3.x funcionará de manera idéntica en todas las versiones 3.y, siendo y mayor que x.

      Sin embargo, en las versiones principales no se garantiza la retrocompatibilidad. Si el código de una versión principal x no se puede ejecutar con una y, x < y, o bien sí se puede pero el resultado es distinto, se dice que es incompatible con la versión y.

      NOTA

      Este libro ha sido actualizado a Python 3.4. El código ha sido ejecutado tanto en Python 3.3 como en Python 3.4 (evidentemente, las funcionalidades presentadas en la 3.4 solo han sido probadas en dicha versión). Para conocer las principales incompatibilidades entre Python 2 y Python 3 consulte el Apéndice B, titulado Principales puntos de rotura entre Python 2 y Python 3.

      Para indicar las versiones en las cuales se resuelven ciertos errores presentes en la versión menor, se utiliza un tercer número, denominado micro number, o patch number. Por ejemplo, en la versión x.y.1 de Python el número 1 indica el micro número. Por tanto, la 3.4.1 es la primera bug-fix release (o versión con errores corregidos) de Python 3.4. Por último, es posible ver un código detrás del número de versión, por ejemplo, 3.4.1a3, 3.4.1b2, 3.4.1c4. Este código se utiliza para indicar las sub-release. Los códigos a1, a2, … aN indican las alpha release, que pueden añadir nuevas funcionalidades (por ejemplo, la 3.4.1a2 podría presentar funcionalidades que no se incluyen en la 3.4.1a1). Los códigos b1, b2, … bN indican las beta release, que pueden resolver los bug pero no pueden añadir nuevas funcionalidades. Los códigos c1, c2, … cN indican las versiones candidate, en las cuales el desarrollo del núcleo comprueba escrupulosamente la corrección de errores. La herramienta utilizada para proponer los cambios en el lenguaje es la Python Enhancement Proposal, que se indica con el acrónimo PEP. Las PEP son documentos públicos revisados por los desarrolladores y la comunidad, con la finalidad de ser aprobados o descartados por Guido. Las PEP tratan distintos aspectos del lenguaje y se identifican por un código único (por ejemplo, PEP-0008). El archivo de todas las PEP se encuentra en la página http://www.python.org/dev/peps/. Para acceder a la página de una determinada PEP, es preciso añadir el texto /pep-code/ a la dirección del archivo; por ejemplo, la página de la PEP-0008 es accesible desde la URL http:// www.python.org/dev/peps/pep-0008/. Tengamos todo esto presente, puesto que nos referiremos a las