2. Usando el intérprete de Python
*********************************


2.1. Invocar el intérprete
==========================

The Python interpreter is usually installed as
"/usr/local/bin/python3.13" on those machines where it is available;
putting "/usr/local/bin" in your Unix shell's search path makes it
possible to start it by typing the command:

   python3.13

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 gurú de 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.13" command will be available. If you have the
py.exe launcher installed, you can use the "py" command. See Excurso:
configurar variables de entorno 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 most systems. Perhaps the
quickest check to see whether command line editing is supported is
typing a word in on the Python prompt, then pressing Left arrow (or
"Control"-"b"). If the cursor moves, 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 a
sequence like "^[[D" or "^B" appears, 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* en su totalidad.

Algunos módulos de Python también son útiles como scripts. Estos
pueden invocarse utilizando "python -m módulo [arg] ...", que ejecuta
el archivo fuente para *módulo* 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" *comando* 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.13
   Python 3.13 (default, April 4 2023, 09:25:04)
   [GCC 10.2.0] 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 *encoding* 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 linea UNIX "shebang". 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.
