Python es un lenguaje de programaci�n f�cil de aprender y potente. Tiene eficaces estructuras de datos de alto nivel y una soluci�n de programaci�n orientada a objetos simple pero eficaz. La elegante sintaxis de Python, su gesti�n de tipos din�mica y su naturaleza interpretada hacen de �l el lenguaje ideal para guiones (scripts) y desarrollo r�pido de aplicaciones, en muchas �reas y en la mayor�a de las plataformas.
El int�rprete de Python y la extensa biblioteca est�ndar est�n disponible libremente, en forma de fuentes o ejecutables, para las plataformas m�s importantes en la sede web de Python, http://www.python.org, y se pueden distribuir libremente.
La misma sede contiene tambi�n distribuciones y direcciones de muchos m�dulos, programas y herramientas Python de terceras partes, adem�s de documentaci�n adicional.
Es f�cil ampliar el int�rprete Python con nuevas funciones y tipos de datos implementados en C y C++ (u otros lenguajes a los que se pueda acceder desde C). Python es tambi�n adecuado como lenguaje de extensi�n para aplicaciones adaptables al usuario. Esta gu�a presenta informalmente al lector los conceptos y caracter�sticas b�sicos del lenguaje y sistema Python. Es conveniente tener a mano un int�rprete para hacer experimentos, pero todos los ejemplos son autosuficientes, as� que la gu�a se puede leer sin estar conectado.
Para obtener descripciones de m�dulos y objetos est�ndar, consulta el documento Referencia de las bibliotecas. El Manual de Referencia de Python ofrece una definici�n m�s formal del lenguaje. Para escribir extensiones en C o C++, lee los manuales de Extensi�n e incrustaci�n y Referencia de la API Python/C. Existen tambi�n diversos libros que tratan Python con detalle. Esta gu�a no intenta ser exhaustiva ni agotar cada capacidad de Python, ni siquiera las m�s com�nmente utilizadas. En lugar de esto, introduce muchas de las capacidades que caracterizan Python y proporciona una idea clara del estilo y sabor del lenguaje. Tras su lectura, el lector ser� capaz de leer y escribir m�dulos y programas en Python y estar� preparado para aprender m�s sobre los diversos m�dulos de biblioteca Python descritos en la Referencia de las bibliotecas.
�Introducci�n
Si en alguna ocasi�n has escrito un guion para int�rprete de �rdenes (o shell script) de UNIX largo, puede que conozcas esta sensaci�n: Te encantar�a a�adir una caracter�stica m�s, pero ya es tan lento, tan grande, tan complicado. . . O la caracter�stica involucra una llamada al sistema u otra funci�n accesible s�lo desde C. El problema en s� no suele ser tan complejo como para transformar el guion en un programa en C. Igual el programa requiere cadenas de longitud variable u otros tipos de datos (como listas ordenadas de nombres de fichero) f�ciles en sh, pero tediosas en C. O quiz� no tiene tanta soltura con C.
Otra situaci�n: Quiz� tengas que trabajar con bibliotecas C diversas y el ciclo normal C escribir-compilar-probar-recompilar es demasiado lento. Necesitas desarrollar software con m�s velocidad. Posiblemente has escrito un programa al que vendr�a bien un lenguaje de extensi�n y no quieres dise�ar un lenguaje, escribir y depurar el int�rprete y adosarlo a la aplicaci�n.
En tales casos, Python puede ser el lenguaje que necesitas. Python es simple, pero es un lenguaje de programaci�n real. Ofrece m�s apoyo e infraestructura para programas grandes que el int�rprete de �rdenes. Por otra parte, tambi�n ofrece mucha m�s comprobaci�n de errores que C y, al ser un lenguaje de muy alto nivel, tiene incluidos tipos de datos de alto nivel, como matrices flexibles y diccionarios, que llevar�an d�as de programaci�n en C. Dados sus tipos de datos m�s generales, se puede aplicar a un rango de problemas m�s amplio que Awk o incluso Perl, pero muchas cosas son, al menos, igual de f�ciles en Python que en esos lenguajes.
Python te permite dividir su programa en m�dulos reutilizables desde otros programas Python. Viene con una gran colecci�n de m�dulos est�ndar que puedes utilizar como base de tus programas (o como ejemplos para empezar a aprender Python). Tambi�n hay m�dulos incluidos que proporcionan E/S de ficheros, llamadas al sistema, sockets y hasta interfaces a IGU (interfaz gr�fica con el usuario) como Tk.
Python es un lenguaje interpretado, lo que ahorra un tiempo considerable en el desarrollo del programa, pues no es necesario compilar ni enlazar. El int�rprete se puede utilizar de modo interactivo, lo que facilita experimentar con caracter�sticas del lenguaje, escribir programas desechables o probar funciones durante el desarrollo del programa de la base hacia arriba. Tambi�n es una calculadora muy �til.
Python permite escribir programas muy compactos y legibles. Los programas escritos en Python son t�picamente mucho m�s cortos que sus equivalentes en C o C++, por varios motivos:
- Los tipos de datos de alto nivel permiten expresar operaciones complejas en una sola sentencia.
- El agrupamiento de sentencias se realiza mediante sangrado (indentaci�n) en lugar de begin/end o llaves.
- No es necesario declarar los argumentos ni las variables.
Python es ampliable: si ya sabes programar en C, es f�cil a�adir una nueva funci�n o m�dulo al int�rprete, para realizar operaciones cr�ticas a la m�xima velocidad o para enlazar programas en Python con bibliotecas que s�lo est�n disponibles en forma binaria (como bibliotecas de gr�ficos espec�ficas del fabricante). Una vez enganchado, puedes enlazar el int�rprete Python a una aplicaci�n escrita en C y utilizarlo como lenguaje de macros para dicha aplicaci�n.
A prop�sito, el nombre del lenguaje viene del espect�culo de la BBC �Monty Python�s Flying Circus� (el circo ambulante de Monty Python) y no tiene nada que ver con desagradables reptiles. Hacer referencias a sketches de Monty Python no s�lo se permite: �es recomendable!
�Por d�nde seguir
Ahora que est�s emocionado con el Python, querr�s examinarlo con m�s detalle. Como la mejor manera de aprender un lenguaje es utilizarlo, desde aqu� te invitamos a hacerlo.
En el siguiente cap�tulo se explica la mec�nica de uso del int�rprete. Es informaci�n un tanto aburrida, pero esencial para probar los ejemplos posteriores.
El resto de la gu�a presenta varias caracter�sticas del sistema y del lenguaje Python mediante ejemplos, empezando por las expresiones, sentencias y tipos de datos sencillos, pasando por las funciones y los m�dulos, para finalizar con una primera visi�n de conceptos avanzados, como excepciones y clases definidas por el usuario.