29 de diciembre de 2020
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
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”“, line 1
>>> print(f”Mi nombre es {nombre}”)
File “
print(f”Mi nombre es {nombre}”)
^
SyntaxError: invalid syntax
¿Qué estoy haciendo mal?