Está en la página 1de 4

I ntroducc in Qu es Python?

Python es un lenguaje de programacin creado por Guido van Rossum a principios de los aos 90 cuyo nombre est inspirado en el grupo de cmicos ingleses Monty Python. Es un lenguaje similar a Perl, pero con una sintaxis muy limpia y que favorece un cd igo legible. Se trata de un lenguaje interpretado o de script, con tipado dinmico, fuertemente tipado, multiplataforma y orientado a objetos. Lenguaje interpretado o de script Un lenguaje interpretado o de script es aquel que se ejecuta utilizando un progr ama intermedio llamado intrprete, en lugar de compilar el cdigo a lenguaje mquina q ue pueda comprender y ejecutar directamente una computadora (lenguajes compilado s). La ventaja de los lenguajes compilados es que su ejecucin es ms rpida. Sin embargo los lenguajes interpretados son ms flexibles y ms portables. Python tiene, no obstante, muchas de las caractersticas de los lenguajes compilad os, por lo que se podra decir que es semi interpretado. En Python, como en Java y muchos otros lenguajes, el cdigo fuente se traduce a un pseudo cdigo mquina interm edio llamado bytecode la primera vez que se ejecuta, generando archivos .pyc o . pyo (bytecode optimizado), que son los que se ejecutarn en sucesivas ocasiones. Tipado dinmico La caracterstica de tipado dinmico se refiere a que no es necesario declarar el ti po de dato que va a contener una determinada variable, Python para todos 8 sino que su tipo se determinar en tiempo de ejecucin segn el tipo del valor al que se asigne, y el tipo de esta variable puede cambiar si se le asigna un valor de otro tipo. Fuertemente tipado No se permite tratar a una variable como si fuera de un tipo distinto al que tie ne, es necesario convertir de forma explcita dicha variable al nuevo tipo previam ente. Por ejemplo, si tenemos una variable que contiene un texto (variable de ti po cadena o string) no podremos tratarla como un nmero (sumar la cadena 9 y el nmero 8). En otros lenguajes el tipo de la variable cambiara para adaptarse al comport amiento esperado, aunque esto es ms propenso a errores. Multiplataforma El intrprete de Python est disponible en multitud de plataformas (UNIX, Solaris, L inux, DOS, Windows, OS/2, Mac OS, etc.) por lo que si no utilizamos libreras espe cficas de cada plataforma nuestro programa podr correr en todos estos sistemas sin grandes cambios. Orientado a objetos La orientacin a objetos es un paradigma de programacin en el que los conceptos del mundo real relevantes para nuestro problema se trasladan a clases y objetos en nuestro programa. La ejecucin del programa consiste en una serie de interacciones entre los objetos. Python tambin permite la programacin imperativa, programacin funcional y programacin orientada a aspectos. Por qu Python? Python es un lenguaje que todo el mundo debera conocer. Su sintaxis simple, clara y sencilla; el tipado dinmico, el gestor de memoria, la gran cantidad de libreras disponibles y la potencia del lenguaje, entre otros, hacen que desarrollar una aplicacin en Python sea sencillo, muy rpido y, lo que es ms importante, divertido. La sintaxis de Python es tan sencilla y cercana al lenguaje natural que Introduccin 9 los programas elaborados en Python parecen pseudocdigo. Por este motivo se trata adems de uno de los mejores lenguajes para comenzar a programar. Python no es adecuado sin embargo para la programacin de bajo nivel o para aplica ciones en las que el rendimiento sea crtico.

Algunos casos de xito en el uso de Python son Google, Yahoo, la NASA, Industrias Light & Magic, y todas las distribuciones Linux, en las que Python cada vez repr esenta un tanto por ciento mayor de los programas disponibles. Instalacin de Python Existen varias implementaciones distintas de Python: CPython, Jython, IronPython , PyPy, etc. CPython es la ms utilizada, la ms rpida y la ms madura. Cuando la gente habla de Pyt hon normalmente se refiere a esta implementacin. En este caso tanto el intrprete c omo los mdulos estn escritos en C. Jython es la implementacin en Java de Python, mientras que IronPython es su contr apartida en C# (.NET). Su inters estriba en que utilizando estas implementaciones se pueden utilizar todas las libreras disponibles para los programadores de Java y .NET. PyPy, por ltimo, como habris adivinado por el nombre, se trata de una implementacin en Python de Python. CPython est instalado por defecto en la mayor parte de las distribuciones Linux y en las ltimas versiones de Mac OS. Para comprobar si est instalado abre una termi nal y escribe python. Si est instalado se iniciar la consola interactiva de Python y obtendremos parecido a lo siguiente: Python 2.5.1 (r251:54863, May 2 2007, 16:56:35) [GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2 Type help, copyright, credits or license for more information. >>> Python para todos 10 La primera lnea nos indica la versin de Python que tenemos instalada. Al final pod emos ver el prompt (>>>) que nos indica que el intrprete est esperando cdigo del us uario. Podemos salir escribiendo exit(), o pulsando Control + D. Si no te muestra algo parecido no te preocupes, instalar Python es muy sencillo. Puedes descargar la versin correspondiente a tu sistema operativo desde la web d e Python, en http://www.python.org/download/. Existen instaladores para Windows y Mac OS. Si utilizas Linux es muy probable que puedas instalarlo usando la herr amienta de gestin de paquetes de tu distribucin, aunque tambin podemos descargar la aplicacin compilada desde la web de Python. Herramientas bsicas Existen dos formas de ejecutar cdigo Python. Podemos escribir lneas de cdigo en el intrprete y obtener una respuesta del intrprete para cada lnea (sesin interactiva) o bien podemos escribir el cdigo de un programa en un archivo de texto y ejecutarl o. A la hora de realizar una sesin interactiva os aconsejo instalar y utilizar iPyth on, en lugar de la consola interactiva de Python. Se puede encontrar en http://i python.scipy.org/. iPython cuenta con caractersticas aadidas muy interesantes, com o el autocompletado o el operador ?. (para activar la caracterstica de autocomple tado en Windows es necesario instalar PyReadline, que puede descargarse desde ht tp://ipython.scipy.org/ moin/PyReadline/Intro) La funcin de autocompletado se lanza pulsando el tabulador. Si escribimos fi y pu lsamos Tab nos mostrar una lista de los objetos que comienzan con fi (file, filte r y finally). Si escribimos file. y pulsamos Tab nos mostrar una lista de los mtod os y propiedades del objeto file. El operador ? nos muestra informacin sobre los objetos. Se utiliza aadiendo el smbo lo de interrogacin al final del nombre del objeto del cual queremos ms informacin. Por ejemplo: In [3]: str? Introduccin 11 Type: type Base Class: String Form: Namespace: Python builtin Docstring:

str(object) -> string Return a nice string representation of the object. If the argument is a string, the return value is the same object. En el campo de IDEs y editores de cdigo gratuitos PyDEV (http://pydev.sourceforge .net/) se alza como cabeza de serie. PyDEV es un plugin para Eclipse que permite utilizar este IDE multiplataforma para programar en Python. Cuenta con autocomp letado de cdigo (con informacin sobre cada elemento), resaltado de sintaxis, un de purador grfico, resaltado de errores, explorador de clases, formateo del cdigo, re factorizacin, etc. Sin duda es la opcin ms completa, sobre todo si instalamos las e xtensiones comerciales, aunque necesita de una cantidad importante de memoria y no es del todo estable. Otras opciones gratuitas a considerar son SPE o Stanis Python Editor (http://sour ceforge.net/projects/spe/), Eric (http://die-offenbachs.de/eric/), BOA Construct or (http://boa-constructor.sourceforge.net/) o incluso emacs o vim. Si no te importa desembolsar algo de dinero, Komodo (http://www.activestate.com/ komodo_ide/) y Wing IDE (http://www.wingware.com/) son tambin muy buenas opciones , con montones de caractersticas interesantes, como PyDEV, pero mucho ms estables y robustos. Adems, si desarrollas software libre no comercial puedes contactar co n Wing Ware y obtener, con un poco de suerte, una licencia gratuita para Wing ID E Professional :) 12 Mi primer programa en Python Como comentbamos en el captulo anterior existen dos formas de ejecutar cdigo Python , bien en una sesin interactiva (lnea a lnea) con el intrprete, o bien de la forma h abitual, escribiendo el cdigo en un archivo de cdigo fuente y ejecutndolo. El primer programa que vamos a escribir en Python es el clsico Hola Mundo, y en e ste lenguaje es tan simple como: print Hola Mundo Vamos a probarlo primero en el intrprete. Ejecuta python o ipython segn tus prefer encias, escribe la lnea anterior y pulsa Enter. El intrprete responder mostrando en la consola el texto Hola Mundo. Vamos ahora a crear un archivo de texto con el cdigo anterior, de forma que pudira mos distribuir nuestro pequeo gran programa entre nuestros amigos. Abre tu editor de texto preferido o bien el IDE que hayas elegido y copia la lnea anterior. Gurd alo como hola.py, por ejemplo. Ejecutar este programa es tan sencillo como indicarle el nombre del archivo a ej ecutar al intrprete de Python python hola.py Mi primer programa en Python 13 pero vamos a ver cmo simplificarlo an ms. Si utilizas Windows los archivos .py ya estarn asociados al intrprete de Python, p or lo que basta hacer doble clic sobre el archivo para ejecutar el programa. Sin embargo como este programa no hace ms que imprimir un texto en la consola, la ej ecucin es demasiado rpida para poder verlo si quiera. Para remediarlo, vamos a aadi r una nueva lnea que espere la entrada de datos por parte del usuario. print Hola Mundo raw_input() De esta forma se mostrar una consola con el texto Hola Mundo hasta que pulsemos E nter. Si utilizas Linux (u otro Unix) para conseguir este comportamiento, es decir, pa ra que el sistema operativo abra el archivo .py con el intrprete adecuado, es nec esario aadir una nueva lnea al principio del archivo: #!/usr/bin/python print Hola Mundo raw_input() A esta lnea se le conoce en el mundo Unix como shebang, hashbang o sharpbang. El par de caracteres #! indica al sistema operativo que dicho script se debe ejecut ar utilizando el intrprete especificado a continuacin. De esto se desprende, evide ntemente, que si esta no es la ruta en la que est instalado nuestro intrprete de P

ython, es necesario cambiarla. Otra opcin es utilizar el programa env (de environment, entorno) para preguntar a l sistema por la ruta al intrprete de Python, de forma que nuestros usuarios no t engan ningn problema si se diera el caso de que el programa no estuviera instalad o en dicha ruta: #!/usr/bin/env python print Hola Mundo raw_input() Por supuesto adems de aadir el shebang, tendremos que dar permisos de ejecucin al p rograma. Python para todos 14 chmod +x hola.py Y listo, si hacemos doble clic el programa se ejecutar, mostrando una consola con el texto Hola Mundo, como en el caso de Windows. Tambin podramos correr el programa desde la consola como si tratara de un ejecutab le cualquiera: ./hola.py