2. Usando el intérprete de Python¶
2.1. Invocando al intérprete¶
Por lo general, el intérprete de Python se instala en /usr/local/bin/python3.7
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.7
en el 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; consulta a tu experto Python local o administrador de sistemas. (Por ejemplo, /usr/local/python
es una alternativa popular).
On Windows machines where you have installed Python from the Microsoft Store, the python3.7
command will be available. If you have
the py.exe launcher installed, you can use the py
command. See Excursus: Setting environment variables for other ways to launch Python.
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). Si eso no funciona, puedes salir del intérprete escribiendo el comando: quit()
.
The interpreter’s line-editing features include interactive editing, history
substitution and code completion on systems that support the GNU Readline library.
Perhaps the quickest check to see whether command line editing is supported is
typing Control-P to the first Python prompt you get. If it beeps, you
have command line editing; see Appendix Edición de entrada interactiva y sustitución de historial for an
introduction to the keys. If nothing appears to happen, or if ^P
is
echoed, command line editing isn’t available; you’ll only be able to use
backspace to remove characters from the current line.
El intérprete funciona de manera similar al shell de Unix: cuando se le llama con una entrada estándar conectada a un terminal, lee y ejecuta comandos de manera interactiva; cuando se le llama con un argumento de nombre de archivo o con un archivo como entrada estándar, lee y ejecuta un script desde ese 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 de shell -c
. Como las sentencias de Python a menudo contienen espacios u otros caracteres que son especiales para el shell, generalmente se recomienda citar comando con comillas simples.
Algunos módulos de Python también son útiles como scripts. Estos pueden invocarse utilizando python -m module [arg] ...
, que ejecuta el archivo fuente para module como si se hubiera escrito el nombre completo en la línea de comandos.
Cuando se usa un script, a veces es útil poder ejecutar el script y luego ingresar al modo interactivo. Esto se puede hacer pasando la -i
antes del nombre del script.
Todas las opciones de la línea de comandos se describen en Command line and environment.
2.1.1. Paso de argumentos¶
Cuando son conocidos por el intérprete, el nombre del script y los argumentos adicionales se convierten a una lista de cadenas de texto asignada a la variable argv
del módulo sys
. Puedes acceder a esta lista haciendo import sys
. La longitud de la lista es al menos uno; cuando no se utiliza ningún script o argumento, 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
comando, sys.argv[0]
vale '-c'
. Cuando se usa -m
módulo, sys.argv[0]
contiene el valor del nombre completo del módulo. Las opciones encontradas después de -c
comand o -m
módulo no son consumidas por el procesador de opciones de Python pero de todas formas se almacenan en sys.argv
para ser manejadas por el comando o módulo.
2.1.2. Modo interactivo¶
Cuando se leen los comandos desde un terminal, se dice que el intérprete está en modo interactivo. En este modo, espera el siguiente comando con el prompt primario, generalmente tres signos de mayor que (>>>
); para las líneas de continuación, aparece el prompt secundario, por defecto tres puntos (...
). El intérprete imprime un mensaje de bienvenida que indica su número de versión y un aviso de copyright antes de imprimir el primer prompt primario:
$ python3.7
Python 3.7 (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 se ingresa una construcción multilínea. Como ejemplo, echa un vistazo a la sentencia if
:
>>> the_world_is_flat = True
>>> if the_world_is_flat:
... print("Be careful not to fall off!")
...
Be careful not to fall off!
Para más información sobre el modo interactivo, ver Modo interactivo.
2.2. El intérprete y su entorno¶
2.2.1. Codificación del código fuente¶
De forma predeterminada, los archivos fuente de Python se tratan como codificados en UTF-8. En esa codificación, los caracteres de la mayoría de los idiomas del mundo se pueden usar simultáneamente en literales, identificadores y comentarios, aunque la biblioteca estándar solo usa caracteres ASCII para los identificadores, una convención que debería seguir cualquier código que sea portable.Para mostrar todos estos caracteres correctamente, tu editor debe reconocer que el archivo es UTF-8, y debe usar una fuente que admita todos los caracteres del archivo.
Para declarar una codificación que no sea la predeterminada, se debe agregar una línea de comentario especial como la primera línea del archivo. La sintaxis es la siguiente:
# -*- coding: encoding -*-
donde codificación es uno de los codecs
soportados por Python.
Por ejemplo, para declarar que se utilizará la codificación de Windows-1252, la primera línea del archivo de código fuente debe ser:
# -*- coding: cp1252 -*-
Una excepción a la regla de primera línea es cuando el código fuente comienza con una línea UNIX «shebang» line. En ese caso, la declaración de codificación debe agregarse como la segunda línea del archivo. Por ejemplo:
#!/usr/bin/env python3
# -*- coding: cp1252 -*-
Notas al pie
- 1
En Unix, el intérprete de Python 3.x no está instalado por defecto con el ejecutable llamado
python
, por lo que no entra en conflicto con un ejecutable de Python 2.x instalado simultáneamente.