Por qué me encanta Python

Hoy (ayer para vosotros), santo día de los santos inocentes, es mi cumpleaños. Entre el curso de orientación laboral y algunas cosas, me queda media horita para escribir algo rápido. Otro día podríamos entrar en el origen de tan santo día, pero hoy quiero hablar brevemente de por qué me encanta Python. ¡Vamos allá!

Tampoco es que vaya a decir gran cosa: es un lenguaje sencillo, limpio, hasta tiene su propio zen; se ahorra corchetes por un tubo y para qué un punto y coma al final de cada línea. Indentemos, hermanos, indentemos.

Pero bueno, esto es cosa de sintaxis, y conviene mantenerse agnóstico en esto de los lenguajes de programación, que al final se trata de comunicación y de entendernos, en este caso con las máquinas.

Otra cosa que me gusta de Python es la infinidad de módulos disponibles. Para prácticamente cualquier cosa que uno pueda imaginarse, ya hay mucho programado. Se importa, se usa y a volar.

Y como de muestra lo mejor es un botón, aquí un pequeño programa que escribí el otro día para pasar el rato.

find_esdlv.py

Este es un pequeño programa que importa un módulo que hace búsquedas en Google, busca con el buscador “el sentido de la vida” y devuelve la posición de elsentidodelavida.net en el resultado, hoy en el número 29.

#!/usr/bin/env python3
# Este programa busca "el sentido de la vida" en Google y devuelve la posicion
# en la que se encuentra ESDLV
​
from googlesearch import search
​
busqueda = "el sentido de la vida"
​
contador = 0
​
for i in search(busqueda,       # Busqueda a realizar
                tld = "co.in",  # top level domain
                num = 50,       # Numero de resultados
                stop = 50,      # Cuando parar
                pause = 2):     # Pausa entre busquedas
​
    contador = contador + 1
    # Si el resultado encontrado contiene la cadena, guardar la posicion
    if i.find("elsentidodelavida.net") != -1:
        posicion = contador
​
if posicion:
    print("\n\nESDLV se encuentra en la posicion: " + str(posicion) + "\n")

Sencillo, elegante, funcional, efectivo.

Me encanta.

Julia, ¿de cuántas maneras diferentes puedes mejorarlo? (guiño guiño).

Por cierto, ya debería salir con resaltado de sintaxis en WordPress, que estuve instalando un plugin al efecto. Es algo más de faena configurar el bloque cada vez, pero vale la pena.

1

#ESDLV#python#zen

Contribuciones:

  1. Julia - 29 de diciembre de 2020 @ 11:10

    Buenos días, Javier 😉
    Queda muy bien la sintaxis resaltada.

    Ya que preguntas, aquí van mis sugerencias 😉

    – en loops no hace falta incrementar el contador a mano, y yo usaría i para el contador automático que te da enumerate y para el resultado un nombre de variable más descriptivo:

    for i, result in enumerate(search(busqueda, tld = “co.in”, num = 50, stop = 50, pause = 2)):
    # Si el resultado encontrado contiene la cadena, guardar la posicion
    if result.find(“elsentidodelavida.net”) != -1:
    posicion = i

    – sigo siendo fan de las f-strings para los prints:
    print(f”\n\nESDLV se encuentra en la posicion: {posicion}\n”)

    Un saludo y sigo pendiente de leer tus entradas de vim con calma!

    • Javier - 29 de diciembre de 2020 @ 12:38

      Gracias, Julia.

      No conocía enumerate(). Muy interesante. ¿Entiendo bien que, al hacer el “for i, result” en la i se guarda el resultado de enumerate y en result los sucesivos resultados del for-loop?

      Me parece una manera fenomenal de resolverlo, ¡gracias!

      Estoy aprendiendo a apreciar las f-strings. Prometo incorporarlo en próximos desarrollos. Gracias 🙂

      Un saludo y felices fiestas!

      • Javier - 29 de diciembre de 2020 @ 12:55

        He probado el código que me has sugerido y el enumerate ha ido bien, pero en python3 me da problemas el f-string. Ejemplo:

        >>> nombre = “Javier”
        >>> print(f”Mi nombre es {nombre}”)
        File ““, line 1
        print(f”Mi nombre es {nombre}”)
        ^
        SyntaxError: invalid syntax

        ¿Qué estoy haciendo mal?

Deja una respuesta

Tu direción de email estará oculta.
Los campos requeridos tienen un asterisco (*).

Este sitio está protegido por reCAPTCHA y se aplican la política de privacidad y los términos de servicio de Google.