# 2. Usando el intérprete de Python

## 2.1. Invocando al intérprete

El intérprete de Python generalmente se instala como `/usr/local/bin/python3.9` en aquellas máquinas donde está disponible; poner `/usr/local/bin` en la ruta de búsqueda de su shell de Unix hace posible iniciarlo escribiendo el comando:

    python3.9

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).

En máquinas Windows en las que haya instalado Python desde Microsoft Store, el comando `python3.9` estará disponible. Si tiene instalado py.exe launcher, puede usar el comando `py`. Consulte Excurso: configurar variables de entorno para conocer otras formas de iniciar 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()`.

Las características para edición de líneas del intérprete incluyen edición interactiva, sustitución de historial y completado de código en sistemas que soportan GNU Readline librería. Quizás la forma más rápida para comprobar si las características de edición se encuentran disponibles es escribir `Control-P` en el primer prompt de Python que aparezca. Si se escucha un sonido, tienes edición de línea de comandos; ver Apéndice Edición de entrada interactiva y sustitución de historial para una introducción a las teclas. Si no parece que ocurra nada, o si se muestra `^P`, estas características no están disponibles; solo vas a poder usar la tecla de retroceso (backspace) para borrar los caracteres de la línea actual.

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 Línea de comandos y entorno.

### 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.9
    Python 3.9 (default, June 4 2019, 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.