El gran libro de pyhton

Implementaciones de Python

El lenguaje Python, como se puede intuir, es el equivalente a una lengua, como puede ser el italiano o el inglés, compuesto por tanto de un conjunto de palabras, reglas de sintaxis y semántica. El código resultante de la combinación de estos elementos se dice que está escrito en lenguaje Python. Este código, por sí mismo, no tiene ninguna utilidad. Solo resulta útil en el momento en que se tiene una herramienta que lo analiza, lo entiende y lo ejecuta. Y esta herramienta es el intérprete Python

El intérprete Python está escrito también en un lenguaje de programación. En realidad, existe más de un intérprete Python, cada uno de los cuales se implementa de forma distinta respecto a los otros: CPython: el intérprete clásico, implementado en C (www.python.org); PyPy: intérprete en RPython (Restricted Python) y compilador Just-in-Time (www.pypy.org); IronPython: implementado sobre la plataforma .NET (www.ironpython.net); Jython: implementado sobre la plataforma Java (www.jython.org); Stackless Python: rama de CPython que soporta microthreads (www.stackless.com). La implementación clásica, aquella que encontramos ya instalada en las distribuciones Linux y en los ordenadores Mac, y presente en el sitio web oficial, es la CPython

Modos de ejecución del código Python

  • Probar versión de python
  • Which programa (nos dice dónde se encuentra el programa)
which pyhton
  • El intérprete Python en los sistemas Unix-like se encuentra habitualmente en /usr/bin/ python o /usr/local/bin/python:
  • Si no lo instalamos
sudo add-apt-repository ppa:deadsnakes/ppa

sudo apt install python3.11 -y

python3.11 --version

Iniciar el interprete

  • Podemos arrancar el intérprete mediante el comando python del terminal:
python3

Como podremos ver, el intérprete se comporta igual que una shell Unix: cuando es llamado con la entrada estándar conectado a un terminal, lee y ejecuta los comandos de manera interactiva, y
cuando es llamado pasando el nombre de un archivo como argumento, o se redirecciona la entrada estándar de un archivo, lee y ejecuta los comandos incluidos en el archivo

Modo interactivo

Cuando los comandos se leen desde un terminal, se dice que el intérprete se ejecuta en modo interactivo. Para utilizar este modo se ejecuta python desde la línea de comandos sin argumentos:

python3

El intérprete muestra un mensaje de bienvenida, que empieza con el número de la versión de Python que se está ejecutando, seguido del prompt principal, normalmente marcado con tres signos mayor que. Cuando una instrucción o un bloque de instrucciones

Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> for i in range(10):
...     print(i,end='')

Desde el prompt principal y desde el secundario, es posible cancelar la entrada y volver al prompt principal tecleando el carácter de interrupción, normalmente Control-C o DEL

Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> for i in range(10):
...     print(i,end='')
... 
KeyboardInterrupt
>>> 

Podemos salir del modo interactivo (con el estado de salida 0) mediante el comando quit() en el prompt principal, o bien tecleando un carácter de EOF (Control-D en los sistemas Unix- like, Control-Z en Windows).

En los sistemas Unix-like, la librería GNU readline permite tener el historial y la implementación del tabulador también en el modo interactivo integrado. Para la implementación del tabulador, debemos importar los módulos rlcompleter y readline y llamar a readline.parse_and_bind(‘tab: complete’):

Aquí (con un doble TAB) tenemos la implementación del tabulador:

Indudablemente, ejecutar estas tres instrucciones cada vez que se trabaja con el modo interactivo es un fastidio. Por ello, es conveniente automatizar el procedimiento creando un archivo con las tres instrucciones y asignándolo a la variable de entorno PYTHONSTARTUP. De esta manera, siempre que
trabajemos con el modo interactivo, Python ejecutará en primer lugar las instrucciones contenidas en el archivo.
Veamos cómo realizar lo que acabamos de describir en un sistema Unix-like con shell bash. Creamos en nuestra home un archivo de inicio, llamado, por ejemplo, .pyrc, con las tres instrucciones Python:

nano /home/tavo/.pyrc
  • Agregamos
import rlcompleter
import readline
readline.parse_and_bind('tab: complete')

Añadimos la siguiente línea en el archivo .bashrc de la home (si este archivo no existe, lo creamos):

nano /home/tavo/.bashrc
  • Y agregamos al final de documento
export PYTHONSTARTUP=$HOME/.pyrc

REVISAR: el comando source ~/.pyrc en el terminal que ya está abierto) y arrancar el intérprete interactivo

Estructura

Los archivos que contienen código Python se denominan módulos Python, los
módulos realizan distintas tareas. Por ejemplo, un módulo puede ser utilizado como contenedor lógico en el cual se definen clases y funciones, o bien como script, para ser ejecutado con el fin de obtener un resultado o de realizar ciertas acciones

Un programa Python está compuesto por uno o más módulos, y por tanto su arquitectura puede ubicar desde un simple script hasta un complejo programa estructurado en cientos de módulos

Los módulos Python tienen normalmente el sufijo .py, y tanto en Windows como en los sistemas Unix-like pueden ejecutarse con el prompt de los comandos, pasando el nombre del archivo como argumento.

// Creamos una carpeta en el escritorio
mkdir /home/tavo/Escritorio/Python

// Creamos el archivo
nano /home/tavo/Escritorio/Python/ejemplo1.py

// Agregamos
print('sada.services') 

// Mandamos a ejecutar
python3 /home/tavo/Escritorio/Python/ejemplo1.py

//Resultado
sada.services

Puesto que en Windows los archivos .py se asocian directamente mediante un doble clic sobre ellos. En cambio, en los sistemas Unix-like, como en los script de shell, los módulos pueden ser directamente ejecutados escribiendo el shebang en la primer línea del archivo:

// Abrimos el archivo
nano /home/tavo/Escritorio/Python/ejemplo1.py

//podemos saber donde esta python3
which python3

// Lo moficamos para que sea así
#!/usr/bin/python3
print('sada.services')

// Le damos permisos de ejecución
chmod 777 /home/tavo/Escritorio/Python/ejemplo1.py

// ingresamos a la ubicación del archivo
cd /home/tavo/Escritorio/Python/

// y ejecutamos
./ejemplo1.py

// Resultado
sada.services

// o lo podemos ejecutar así
/home/tavo/Escritorio/Python/ejemplo1.py

En este punto, el archivo puede ser ejecutado directamente desde la línea de comandos. Dado que como primera línea del archivo se encuentra el shebang #! /usr/bin/env python, el archivo se ejecutará con Python

Por defecto, en Python 3 el intérprete utiliza la codificación UTF-8 para descodificar el contenido de los módulos. Pero, si queremos escribir el código utilizando una codificación diferente, también podemos hacerlo, siempre y cuando el intérprete sea informado de ello. Podemos especificar la codificación utilizada insertando en el módulo un comentario especial debajo del shebang, que contenga coding:nome o coding=nome

Ejecución de cadenas pasadas desde la línea de comandos

Cuando el intérprete es llamado mediante la opción -c, este acepta como argumento una cadena que contiene instrucciones Python y las ejecuta

// Comando
python3 -c "import sys; print(sys.platform)"

// Resultado
linux

Introducción al lenguaje

Indentación del código

En Python un bloque de código anidado no está delimitado por palabras clave o por llaves sino por el signo de dos puntos y la indentación (sangría) misma del código