Con mi lenguaje de programación favorito voy a inaugurar esta sección que trata de forma bastante exclusiva la informática, la disciplina sobre la que de verdad controlo (no como mis desastrosos intentos de negocio digital).

¿Qué es Python?

Python es un lenguaje relativamente moderno bastante más sencillo de utilizar que, por ejemplo, C.

Los que alguna vez han utilizado C saben que casi cualquier lenguaje moderno es más sencillo de utilizar, por aquello de que no hay que gestionar la memoria dinámica de manera manual

*Painful Segmentation Fault noises*

Pero Python no te da esos rompederos de cabeza (aunque, lo siento programador, te va a dar otros).

Como cualquier lenguaje moderno, se basa en la idea de ejecutar un código en una máquina virtual… no como la de VirtualBox o VMWare… si no una especie de CPU virtual que permite que el mismo código pueda ser ejecutado en diferentes plataformas sin tener que reescribir nada en absoluto.

Esa máquina virtual (que en la práctica tampoco funciona al 100% perfecta como te lo pintan en un principio, pero bueno) gestiona muchas cosas por el programador, pero gestiona una muy importante: la memoria dinámica.

Decía antes que la memoria dinámica en C se gestionaba de manera manual, porque hay que crear los punteros, especificar en el código cuánto espacio quieres reservar… pero en lenguajes como Python, esa gestión la hace automáticamente la máquina virtual (y de vez en cuando hasta eficientemente).

Esto lo hace un lenguaje más lento pero más fácil de utilizar.

Particularidades de Python

Lo primero es que Python es un lenguaje interpretado.

Más despacio, cerebrito… ¿de qué me hablas?

Si vienes de C, Java, C++ o alguna cosa por el estilo, estarás acostumbrado al maravilloso proceso de compilación… ese que te dice «¡TE HAS OLVIDADO UN PUNTO Y COMA!».

Pues bien… la cosa en Python cambia un poquito. En lugar de compilar el código, este código es interpretable.

¿Qué quiere decir que el lenguaje sea interpretado?

Por así decirlo, el código no se compila por completo antes de ejecutar el programa, si no que esto se hace línea a línea cuando el código se está ejecutando propiamente… más o menos.

En la práctica, esto significa saltarte muchas cosas complejas de la compilación.

En Python, cuando tu ejecutas un código (que se le suele llamar «script de Python»), simplemente hace un rápido chequeo para ver si la sintaxis es correcta. Pero no hace nada más.

Si el código está bien construido, irá línea por línea ejecutándose.

Esto tiene una pequeña desventaja y es que Python no comprueba cosas como los tipos de las variables, si no que lo hace en tiempo de ejecución.

Esto quiere decir, por ejemplo, que si intentas sumar un número decimal con una cadena de texto (algo como 2 + «pizza») el intérprete va a tirar para adelante, pero cuando el código llegue a esa línea, te va a dar un error.

Entre otras cosas, esto hace Python un poco más lento en ejecución, ya que no hay un compilador que haga comprobación de los tipos y, por tanto, es en tiempo de ejecución cuando esto se debe llevar a cabo.

Otra de las peculiaridades de Python es que tiene una sintaxis que pretende ser muy limpia.

Por ello, una de las cosas que más llaman la atención de este lenguaje es que las líneas de código no se separan con punto y coma.

Tampoco hay corchetes abiertos y cerrados como ocurre en C o en Java.

En otras palabras, en lugar de definir una función así:

int funcion(int valor) {
    int nuevo_valor;

    nuevo_valor = valor + 1;
    return valor;
}

En Python se definirá así:

def funcion(valor):
    nuevo_valor = valor + 1
    
    return nuevo_valor

Eso sí, todo esto implica, por otra parte, que la identación del código es tremendamente importante. Por ejemplo, no es lo mismo esto de aquí:

for i in range(0, 5):

for j in range(0, 5):

z = i+j

print(z)

Que esto de aquí:

for i in range(0, 5):
    for j in range(0, 5):
        z = i+j
    print(z)

En el primer caso, el print(z) se ejecutará 25 veces mientras que en el segundo caso, solo lo hará 5 veces.

Características más destacables de Python

Python es un lenguaje multiparadigma, es decir, que la programación se puede hacer de varias maneras.

Se pueden hacer scripts de Python de forma imperativa, es decir, simplemente con un churro de líneas de código o definiendo funciones y luego llamando a ellas.

También se puede utilizar la orientación a objetos, de tal forma que podremos definir clases y crear instancias de esas clases, pudiendo emplear recursos como la herencia (que aquí es herencia múltiple) o la composición.

Además, incluye algunos elementos propios de los lenguajes funcionales como es el caso de las expresiones lambda.

De hecho, el bucle for se puede definir como un for-each en algunos casos (que hace uso del patrón iterador, pero en esto vamos poco a poco).

Luego, otra de las cosas más llamativas es el tipado dinámico.

Aquí no es necesario especificar que una variable es de X tipo, de tal forma que no hay que definirla.

Es decir, en C, primero creas una variable entera con la sentencia «int valor» y luego le asignas un valor haciendo «valor = 10».

En Python, puedes hacer «valor = 10» directamente. El intérprete comprobará, en tiempo de ejecución, que esa variable «valor» será un número entero.

¿Por qué se utiliza Python?

Python es muy utilizado por el mundo científico ya que está pensado de forma diferente a otros lenguajes como Java.

Este lenguaje de orientación a objetos está más bien pensado para aplicaciones empresariales que se vayan a mantener a lo largo del tiempo.

Python está pensado para hacer algo rápidamente y de forma sencilla.

Es por ello que ha sido adoptado por la comunidad científica ya que muchos de sus miembros son personas que no tienen una gran formación en programación y que no buscan crear programas complejos, bien estructurados y que se deban mantener a lo largo del tiempo.

Tampoco se busca que sea el lenguaje más rápido, dadas las aplicaciones a las que está orientado.

Sin embargo, es cierto que a veces es necesario que un determinado algoritmo implementado en Python tenga que ser transcrito a C al ser la velocidad un aspecto crítico (por ejemplo, un sistema de análisis de imágenes basado en inteligencia artificial que tenga que funxionar a tiempo real).

Y hasta aquí este primer post sobre Python

Espero poder seguir hablando y enseñando mucho sobre este lenguaje de programación.

¿Qué opinas sobre Python? ¿Lo has utilizado alguna vez? ¿Lo usas con frecuencia? ¿Para qué aplicaciones lo utilizas?

Déjame tus comentarios a continuación.

¡Hasta el próximo post!


0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *