El gran libro de Python. Marco Buttu
Чтение книги онлайн.
Читать онлайн книгу El gran libro de Python - Marco Buttu страница 5
Acabamos esta sección con una sugerencia: la lectura del Python Advocacy HOWTO, que puede consultarse en la siguiente página de su sitio oficial: http://docs.python.org/3/howto/advocacy.html.
La comunidad italiana de Python
Italia desempeña un papel relevante en cuanto al desarrollo de Python se refiere. Desde 2011 y hasta 2013, la Conferencia Europea de Python (EuroPython, www.europython.eu) se ha celebrado en Florencia y ha sido organizada de forma impecable por la Associazione di Promozione Sociale Python Italia.
La comunidad italiana es extensa e, igual que la internacional, siempre está dispuesta a compartir sus propias experiencias, a ayudar a los demás y a organizar de forma conjunta eventos y encuentros.
Formar parte de esta comunidad es muy sencillo: basta con inscribirse en la mailing list, siguiendo las instrucciones de la página http://www.python.it/comunita/mailing-list/.
Implementaciones de Python
Debemos realizar una importante precisión con respecto al término Python. De hecho, este término se utiliza para indicar dos cosas estrechamente vinculadas, aunque distintas: el lenguaje Python y el intérprete Python.
El lenguaje Python, como se puede intuir, es el equivalente a una lengua, como puede ser el italiano o el inglés, compuesto por tanto de un conjunto de palabras, reglas de sintaxis y semántica. El código resultante de la combinación de estos elementos se dice que está escrito en lenguaje Python. Este código, por sí mismo, no tiene ninguna utilidad. Solo resulta útil en el momento en que se tiene una herramienta que lo analiza, lo entiende y lo ejecuta. Y esta herramienta es el intérprete Python.
Por lo tanto, cuando instalamos Python o utilizamos el comando python, estamos instalando o utilizando el intérprete, es decir, la herramienta que nos permite ejecutar el código escrito en el lenguaje de programación Python. El intérprete Python está escrito también en un lenguaje de programación. En realidad, existe más de un intérprete Python, cada uno de los cuales se implementa de forma distinta respecto a los otros:
• CPython: el intérprete clásico, implementado en C (www.python.org);
• PyPy: intérprete en RPython (Restricted Python) y compilador Just-in-Time (www.pypy.org);
• IronPython: implementado sobre la plataforma .NET (www.ironpython.net);
• Jython: implementado sobre la plataforma Java (www.jython.org);
• Stackless Python: rama de CPython que soporta microthreads (www.stackless.com).
La implementación clásica, aquella que encontramos ya instalada en las distribuciones Linux y en los ordenadores Mac, y presente en el sitio web oficial, es la CPython. Esta es la implementación de referencia y se denomina habitualmente Python. Por este motivo, de ahora en adelante en este libro, si no se indica de otra forma, cuando hablemos del intérprete Python, de su instalación y de su funcionamiento, así como cuando nos refiramos a su implementación, estaremos hablando de CPython.
Modos de ejecución del código Python
Como ya hemos dicho, la teoría que estudiaremos en este libro está actualizada para Python 3.4, por lo que se aconseja probar los ejemplos del libro utilizando esta versión.
En cualquier caso, debemos tener en cuenta que el código que funciona con la versión 3.x funciona también con cualquier versión 3.y, siendo y mayor que x.
El intérprete Python en los sistemas Unix-like se encuentra habitualmente en /usr/bin/ python o /usr/local/bin/python:
mientras que en las máquinas Windows normalmente se encuentra en C:\Python.
NOTA
En todo este libro utilizaremos muchas veces comandos Unix y los acompañaremos de notas para explicar su significado. Además, todo el Apéndice A está dedicado a los comandos Unix utilizados en el libro. Acabamos de ver el comando which. Este toma como argumento el nombre de un archivo ejecutable que se encuentra en la ruta de búsqueda y devuelve la ruta completa. En otras palabras, nos dice dónde se encuentra el programa:
Podemos arrancar el intérprete mediante el comando python del terminal:
El intérprete puede arrancar con distintas opciones, que podemos consultar ejecutando Python con la opción -h:
Como podremos ver, el intérprete se comporta igual que una shell Unix: cuando es llamado con la entrada estándar conectado a un terminal, lee y ejecuta los comandos de manera interactiva, y cuando es llamado pasando el nombre de un archivo como argumento, o se redirecciona la entrada estándar de un archivo, lee y ejecuta los comandos incluidos en el archivo. Además, cuando se utiliza la opción -c, ejecuta las instrucciones que se le han pasado en forma de cadena. Veamos en detalle estos tres modos de ejecución.
Modo interactivo
Cuando los comandos se leen desde un terminal, se dice que el intérprete se ejecuta en modo interactivo. Para utilizar este modo se ejecuta python desde la línea de comandos sin argumentos:
El intérprete muestra un mensaje de bienvenida, que empieza con el número de la versión de Python que se está ejecutando, seguido del prompt principal, normalmente marcado con tres signos mayor que. Cuando una instrucción o un bloque de instrucciones ocupa más de una línea, se muestra el prompt secundario, marcado con tres puntos:
Desde el prompt principal y desde el secundario, es posible cancelar la entrada y volver al prompt principal tecleando el carácter de interrupción, normalmente Control-C o DEL:
Podemos salir del modo interactivo (con el estado de salida 0) mediante el comando quit() en el prompt principal, o bien tecleando un carácter de EOF (Control-D en los sistemas Unix-like, Control-Z en Windows).
Como el modo interactivo es muy útil tanto para probar el código rápidamente como para efectuar introspecciones de objetos, es preferible utilizar un entorno más cómodo que el simple modo interactivo integrado. Existen distintas opciones, entre las cuales destacan IPython, bpython, DreamPie o el entorno de desarrollo IDLE (Integrated Development Environment), incluido en las distribuciones Python estándar. Estas soportan funciones avanzadas, como la implementación del tabulador con introspección de objetos, la coloración de la sintaxis, la ejecución de los comandos de shell y el historial de comandos.
NOTA