El lenguaje de programación Python

Python es un lenguaje de programación de nivel alto, dinámico, de propósito general y multi-paradigma, que se considera fácil de aprender y dominar pero que requiere un «pitónico» modo de hacerlo.


Introducción

Aquí, lejos de describir el lenguaje de programación o buscar elaborar un tutorial, se recopilan notas y reflexiones diversas sobre el lenguaje y la filosofía de diseño detrás de este.

Python es un lenguaje de programación cuya filosofía de diseño parte de la legibilidad del código fuente. La primera liberación de Python fue hecha en 1991, aunque la versión 1.0 se alcanzó hasta 1994. Para quienes aprendimos a programar estructurando nuestra mente al estilo imperativo de los más viejos y tradicionales lenguajes de programación, el primer reto que veremos al tratar de aprenderlo será adoptar el estilo de pensamiento que le permite a uno sacar el máximo provecho de este lenguaje de programación. Mientras uno no lo haga, programará en Python de la misma forma en que programaría en Pascal, C, Fortran o cualquier otro lenguaje de naturaleza imperativa.

Muchos sistemas operativos (especialmente los unices) incluyen alguna implementación de Python, por lo que podemos identificarlo como un lenguaje completamente portátil sin que ello implique una máquina virtual de por medio como fue el caso de Java. A este respecto, aunque pudiera haber alguna consideración sobre la implementación y versión del lenguaje, estas notas pretenden ser completamente independientes de ello. Antes de proceder con algún ejemplo mostrado aquí, lea todo lo que se ha anotado sobre el ejemplo y tenga siempre presente la declaración de responsabilidad de este sitio.


Características

Ventajas

De entre muchas características que pueden enumerarse, quizás las más representativas son:

  1. Se trata de un lenguaje versátil al ser de propósito general y poder soportar varios paradigmas de programación.
  2. Facilita tiempos de desarrollo reducidos y provee tiempos de ejecución razonables.
  3. Es un lenguaje simple en su sintaxis que aprovecha la ampliamente difundida y adoptada indentación de código como recurso ornamental para apreciar el alcance semántico de las instrucciones y bloques de estas.

Desventajas

Algunas desventajas o inconvenientes de su utilización son:

  1. Es un lenguaje interpretado.
  2. Al no ser obligatoria la declaración de tipos de datos (son determinados en run-time), algunos errores pueden no ser fácilmente detectados.

Modularidad

Python es un lenguaje que nació con la idea de la modularidad incorporada en su ADN y es una de las cosas que a veces llega a ser malinterpretada.

Un módulo en Python se crea fácilmente. Basta crear un archivo con código y hacer referencia a este con la instrucción import. Sin embargo, algunas veces la idea presenta algunas dificultades.

Por el nombre del script

En Python, un identificador (nombre de objeto, variable, etc.) debe empezar por una letra o un guión bajo. El nombre del módulo de Python es también un identificador, pero el archivo que contiene un script no se ciñe a las mismas reglas de conformación. El nombre de un script puede empezar con un número. Tratar de importar a un módulo cuyo nombre de archivo inicia con un número generará un error:

>>> import 1stScript
  File "<stdin>", line 1
    import 1stScript
           ^
SyntaxError: invalid decimal literal
>>>

Colocar el nombre entre comillas no ayuda, y ciertamente se trata de un «detalle» identificado desde hace mucho tiempo y que no ha recibido atención realmente. Quizás esto se deba en parte a que, como muchos señalan, lo más simple es renombrar el archivo para adaptarse a las reglas de Python. Pero, existe un workaround:

_1stN = __import__("1stN")

La variable se utiliza igual que un alias (de la misma forma que cuando se hace import ... as ...)


Nombres y valores

Dada la orientación a objetos de la que parte y se orienta la construcción de Python, el comportamiento de los nombres y valores en Python puede ser confuso para muchos. Algo que puede ayudar a entender este asunto es el que los nombres hacen referencia a valores, y un valor puede ser referenciado por muchos nombres pero la forma en la que las referencias se crean y son compartidas (asignadas) debe ser bien entendido para evitar suposiciones incorrectas y efectos secundarios1 (ver post al respecto).


Bibliotecas

Ubicación

PYTHONPATH es la variable de entorno que ayuda al intérprete de Python a encontrar el almacén de bibliotecas. Muchas veces ni nos preocupamos por declararla, pero cuando lo necesitamos, nos preguntamos qué valor poner. Una forma de saber el valor que debemos colocar o de donde partir es primero interrogando al sistema:

(nmap) Codex:bin lalo$ python 
Python 3.12.3 | packaged by Anaconda, Inc. | (main, Apr 19 2024, 11:44:52) [Clang 14.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
>>> sys.path
['', '/Users/lalo/Applications/MiniConda3/miniconda3/envs/nmap/lib/python312.zip', '/Users/lalo/Applications/MiniConda3/miniconda3/envs/nmap/lib/python3.12', '/Users/lalo/Applications/MiniConda3/miniconda3/envs/nmap/lib/python3.12/lib-dynload', '/Users/lalo/Applications/MiniConda3/miniconda3/envs/nmap/lib/python3.12/site-packages']
>>> exit()

Vigencia y convivencia

Al respecto de la convivencia de versiones o el decaimiento de compatibilidades:


Referencias

  1. Ned Batchelder, «Facts and myths about Python names and values«, blog. Updated: 20145.01.26; visited: 2024.12.06. URL: https://nedbatchelder.com/text/names.html


Twitter Wordpress eMail
© Todos los derechos reservados.
Dr. Eduardo René Rodríguez Avila
Creación: 2023.08.02
Última actualización: 2025.09.04
El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de estas y, salvo que sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y cómo ha sido obtenido, consulte la declaración al respecto.