Guía de aprendizaje de Python

En UNIX, el int�rprete de Python se suele instalar como �/usr/local/bin/python� en aquellas m�quinas donde est� disponible. En Windows, se instala en el directorio �Archivos de programa�. Poner este directorio en el path hace posible arrancarlo tecleando en el int�rprete de �rdenes la orden:

    python

Como la elecci�n del directorio donde reside el int�rprete es una opci�n de instalaci�n, es posible que se halle en otros lugares. Consulta con tu guru de Python local o tu administrador de sistemas (por ejemplo, �/usr/local/python� es una alternativa frecuente).

Teclear un car�cter EOF o fin de fichero (Control-D en UNIX, Control-Z en DOS o Windows) en el int�rprete causa la salida del int�rprete con un estado cero. Si eso no funciona, se puede salir del int�rprete tecleando las siguientes �rdenes: import sys; sys.exit().

Las opciones de edici�n de la l�nea de �rdenes no son muy destacables. En UNIX, es posible que quien instalara el int�rprete en tu sistema incluyera soporte para la biblioteca de GNU �readline�, que permite edici�n de l�nea m�s elaborada y recuperaci�n de �rdenes anteriores. El modo m�s r�pido de ver sin hay soporte de edici�n de l�neas es teclear Control-P en cuanto aparece el int�rprete. Si pita, la edici�n de l�neas est� disponible (en el Ap�ndice A hay una introducci�n a las teclas de edici�n). Si no sale nada o sale ^P, no est� disponible la edici�n de l�neas y s�lo se puede utilizar la tecla de borrado para borrar el �ltimo car�cter tecleado.

El int�rprete funciona como el int�rprete de �rdenes de UNIX: cuando se le llama con la entrada est�ndar conectada a un dispositivo tty, lee y ejecuta las �rdenes interactivamente; cuando se le da un nombre de fichero como argumento o se le da un fichero como entrada est�ndar, lee y ejecuta un guion desde ese fichero.

Un tercer modo de arrancar el int�rprete es python -c orden [argumento] ..., que ejecuta las sentencias de orden, de forma an�loga a la opci�n -c de la l�nea de �rdenes. Como las sentencias de Python suelen contener espacios u otros caracteres que la l�nea de �rdenes considera especiales, lo mejor es encerrar orden entre dobles comillas por completo.

Observa que hay una diferencia entre python fichero y python <fichero. En el caso de la redirecci�n, las solicitudes de entrada del programa, tales como llamadas a input() y raw_input(), se satisfacen desde fichero. Como este fichero ya se ha le�do hasta el final antes de empezar la ejecuci�n del programa, el programa se encuentra un EOF (fin de fichero) inmediatamente. En el caso del nombre de fichero como argumento, las solicitudes de entrada son satisfechas desde lo que est� conectado a la entrada est�ndar (esto suele ser lo deseado).

Cuando se utiliza un fichero de guion, a veces es �til ejecutar el guion y entrar en modo interactivo inmediatamente despu�s. Esto se consigue pasando -i como argumento, antes del nombre del guion (esto no funciona si el guion se lee desde la entrada est�ndar, por la misma raz�n indicada en el p�rrafo anterior).

Traspaso de argumentos

El int�rprete pasa el nombre del guion y los argumentos, si los conoce, mediante la variable sys.argv, que es una lista de cadenas. Su longitud es al menos uno (cuando no hay guion y no hay argumentos, sys.argv[0] es una cadena vac�a). Cuando el guion es �-� (es decir, la entrada est�ndar), sys.argv[0] vale �-�. Cuando se utiliza -c orden, sys.argv[0] vale �-c�. Las opciones tras -c orden no las utiliza el int�rprete Python, sino que quedan en sys.argv para uso de la orden.

Modo interactivo

Cuando se leen �rdenes desde una tty, se dice que el int�rprete est� en modo interactivo. En este modo, espera a la siguiente orden con el indicador principal, que suele se tres signos �mayor� (�>>>� ). Para las l�neas adicionales, se utiliza el indicador secundario, por omisi�n tres puntos (�... �).

El int�rprete muestra un mensaje de bienvenida con su n�mero de versi�n e informaci�n de derechos de copia, antes de mostrar el primer indicador, por ejemplo:

    python
    Python 1.5.2b2 (#1, Feb 28 1999, 00:02:06) [GCC 2.8.1] on sunos5
    Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
    >>>

Las l�neas de continuaci�n son necesarias al introducir construcciones milti-l�nea. Por ejemplo, echa un visatazo a esta sentencia if:

    >>> la_tierra_es_plana = 1
    >>> if la_tierra_es_plana:
    ... print "�Cuidado, que te caes!"
    ...
    �Cuidado, que te caes!

.�El int�rprete y su entorno

Gesti�n de errores

Cuando ocurre un error, el int�rprete muestra un mensaje de error y una traza de la pila. En el modo interactivo, despu�s vuelve al indicador principal. Si la entrada ven�a de un fichero, sale con un resultado distinto de cero tras mostrar la traza de la pila (las excepciones gestionadas con una sentencia except en una construcci�n try no son errores en este contexto). Existen errores no capturables que hacen que se cierre el int�rprete con un resultado distinto de cero. Por ejemplo, esto ocurre con las inconsistencias internas y, en algunos casos, al quedarse sin memoria. Todos los mensajes de error se escriben en la salida de error est�ndar (la pantalla, si no se redirige a un fichero u otra cosa). La salida del programa se escribe en la salida est�ndar (que tambi�n es la pantalla, salvo en el caso mencionado antes).

Si se teclea el car�cter de interrupci�n (suele ser Control-C o DEL) en el indicador principal o secundario se cancela la entrada y se hace volver el indicador primario (Puede haber problemas con el paquete GNU readline que impidan esto) . Si se intenta interrumpir mientras se ejecuta una orden, se activa la excepci�n KeyboardInterrupt, que puede ser gestionada por una construcci�n try.

Guiones Python ejecutables

En sistemas UNIX tipo BSD, los guiones Python se pueden hacer ejecutables directamente, como guiones de l�nea de �rdenes, poniendo la l�nea

    #! /usr/bin/env python

(suponiendo que el int�rprete est� en el $PATH del usuario) al principio del guion y d�ndole al guion permisos de ejecuci�n. �#!� deben ser los primeros caracteres del fichero. Observa que la almohadilla, �#�, se utiliza para iniciar un comentario en Python.

El fichero de arranque interactivo

Al usar Python interactivamente, suele ser �til que se ejecuten algunas �rdenes est�ndar cada vez que se arranca el int�rprete. Se puede lograr esto poniendo en la variable de entorno $PYTHONSTARTUP el nombre del fichero que contiene las �rdenes de arranque. Esto se parece a la caracter�stica �.profile� de la l�nea de �rdenes de UNIX o al fichero �autoexec.bat� de MS-DOS.

Este fichero s�lo se lee en sesiones interactivas, no cuando Python lee �rdenes de un guion, ni cuando se utiliza �/dev/tty� como fuente expl�cita de �rdenes (lo que hace que se comporte casi como una sesi�n interactiva). Estas �rdenes se ejecutan en el mismo espacio nominal que las �rdenes, para que los objetos definidos o m�dulos importados se puedan usar sin necesidad de cualificarlos en la sesi�n interactiva. Tambi�n puede cambiar los indicadores principal y secundario (sys.ps1 y sys.ps2) usando este fichero.

Si deseas leer un archivo de arranque adicional del directorio actual puedes programarlo as� en el fichero de arranque global, es decir if os.path.isfile(�.pythonrc.py�): execfile(�.pythonrc.py�). Si deseas utilizar el fichero de arranque en un guion, debes hacerlo expl�citamente dentro del guion:

    import os
    nombreFich = os.environ.get(�PYTHONSTARTUP�)
    if nombreFich and os.path.isfile(nombreFich):
    execfile(nombreFich)

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR