3. Usando el intérprete de Python¶
3.1. Invocando al intérprete¶
Por lo general, el intérprete de Python se instala en
/usr/local/bin/python3.6
en las máquinas dónde está disponible; poner
/usr/local/bin
en el camino de búsqueda de tu intérprete de comandos
Unix hace posible iniciarlo ingresando la orden:
python3.6
…en la terminal. [1] Ya que la elección del directorio dónde vivirá el
intérprete es una opción del proceso de instalación, puede estar en otros
lugares; consultá a tu Gurú Python local o administrador de sistemas. (Por
ejemplo, /usr/local/python
es una alternativa popular).
En máquinas con Windows, la instalación de Python por lo general se encuentra
en C:\Python36
, aunque se puede cambiar durante la instalación. Para
añadir este directorio al camino, podes ingresar la siguiente orden en el
prompt de DOS:
set path=%path%;C:\python36
Se puede salir del intérprete con estado de salida cero ingresando el carácter
de fin de archivo (Control-D en Unix, Control-Z en Windows) en el
prompt primario. Si esto no funciona, se puede salir del intérprete
ingresando: quit()
.
Las características para editar líneas del intérprete incluyen edición
interactiva, sustitución usando el historial y completado de código en
sistemas que soportan readline. Tal vez la forma más rápida de
detectar si las características de edición están presentes es ingresar
Control-P en el primer prompt de Python que aparezca. Si se escucha
un beep, las características están presentes; ver Apéndice
Edición de entrada interactiva y sustitución de historial para una introducción a las teclas. Si no pasa
nada, o si aparece ^P
, estas características no están disponibles;
solo vas a poder usar backspace para borrar los caracteres de la línea
actual.
La forma de operar del intérprete es parecida a la línea de comandos de Unix: cuando se la llama con la entrada estándar conectada a una terminal lee y ejecuta comandos en forma interactiva; cuando es llamada con un nombre de archivo como argumento o con un archivo como entrada estándar, lee y ejecuta un script del archivo.
Una segunda forma de iniciar el intérprete es python -c comando [arg] ...
,
que ejecuta las sentencias en comando, similar a la opción -c
de la
línea de comandos. Ya que las sentencias de Python suelen tener espacios en
blanco u otros caracteres que son especiales en la línea de comandos, es
normalmente recomendado citar comando entre comillas dobles.
Algunos módulos de Python son también útiles como scripts. Pueden invocarse
usando python -m module [arg] ...
, que ejecuta el código de module como
si se hubiese ingresado su nombre completo en la línea de comandos.
Cuando se usa un script, a veces es útil correr primero el script y luego
entrar al modo interactivo. Esto se puede hacer pasándole la opción
-i
antes del nombre del script.
Todas las opciones de línea de comandos están se descriptas en Línea de comandos y entorno.
3.1.1. Pasaje de argumentos¶
Cuando son conocidos por el intérprete, el nombre del script y los argumentos
adicionales son entonces convertidos a una lista de cadenas de texto asignada
a la variable argv
del módulo sys
. Podés acceder a esta lista
haciendo import sys
. El largo de esta lista es al menos uno; cuando ningún
script o argumentos son pasados, sys.argv[0]
es una cadena vacía. Cuando
se pasa el nombre del script con '-'
(lo que significa la entrada
estándar), sys.argv[0]
vale '-'
. Cuando se usa -c
command,
sys.argv[0]
vale '-c'
. Cuando se usa -m
module,
sys.argv[0]
toma el valor del nombre completo del módulo. Las opciones
encontradas luego de -c
command o -m
module no son
consumidas por el procesador de opciones de Python pero de todas formas
almacenadas en sys.argv
para ser manejadas por el comando o módulo.
3.1.2. Modo interactivo¶
Se dice que estamos usando el intérprete en modo interactivo, cuando los
comandos son leídos desde una terminal. En este modo espera el siguiente
comando con el prompt primario, usualmente tres signos mayor-que (>>>
);
para las líneas de continuación espera con el prompt secundario, por defecto
tres puntos (...
). Antes de mostrar el prompt primario, el intérprete
muestra un mensaje de bienvenida reportando su número de versión y una nota de
copyright:
$ python3.6
Python 3.6 (default, Sep 16 2015, 09:25:04)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Las líneas de continuación son necesarias cuando queremos ingresar un
constructor multilínea. Como en el ejemplo, mirá la sentencia if
:
>>> el_mundo_es_plano = True
>>> if el_mundo_es_plano:
... print("¡Tené cuidado de no caerte!")
...
¡Tené cuidado de no caerte!
Para más información sobre el modo interactivo, ve a Modo interactivo.
3.2. El intérprete y su entorno¶
3.2.1. Codificación del código fuente¶
Por default, los archivos fuente de Python son tratados como codificados en UTF-8. En esa codificación, los caracteres de la mayoría de los lenguajes del mundo pueden ser usados simultáneamente en literales, identificadores y comentarios, a pesar de que la biblioteca estándar usa solamente caracteres ASCII para los identificadores, una convención que debería seguir cualquier código que sea portable. Para mostrar estos caracteres correctamente, tu editor debe reconocer que el archivo está en UTF-8 y usar una tipografía que soporte todos los careacteres del archivo.
Para especificar una codificación distinta de la por defecto, un línea de comentario especial debe ser agregada como la primera línea del archivo. La sintaxis es como sigue:
# -*- coding: encoding -*-
Donde encoding es uno de los codecs
válidos soportados por
Python.
Por ejemplo, para indicar que el encoding Windows-1252 es el usado, la primera línea de tu código fuente debe ser:
# -*- coding: cp-1252 -*-
Una excepción a la regla de la primera línea es cuando el código fuente comienza con UNIX “shebang” line. En este caso, la declaración del encoding debe ser agregada como la segunda línea del archivo. Por ejempo:
#!/usr/bin/env python3
# -*- coding: cp-1252 -*-
Footnotes
[1] | En Unix, el intérprete de Python 3.x no se instala por default con el
ejecutable llamado python para que no conflictúe con un ejecutable de
Python 2.x que esté instalado simultaneamente. |