Python es la herramienta perfecta para cada problema
@programacion
Reflexiones sobre mi primer programa en Python.
Pensar es siempre una actividad útil (ya veces entretenida). Por razones nostálgicas, por supuesto, si puedes sentir nostalgia por algo que fue hace dos años, quiero compartir mi programa Python. Originalmente comencé a trabajar con Python cuando todavía era un estudiante de ingeniería. Usando Python, quería evitar el trabajo con hojas de cálculo. Entonces no tenía ni idea de lo buena que había sido la decisión que había tomado.
Mi aprendizaje de Python comenzó con el libro Automatice las cosas aburridas con Python de Al Sweigart. Un gran libro orientado a aplicaciones con programas simples que hacen cosas útiles. Cuando aprendo algo nuevo, busco todas las oportunidades para usar mis nuevos conocimientos, así que quería encontrar un problema que pudiera resolver con Python. Ese problema era un libro de texto de clase que costaba $200. Mi límite de libros de texto personales es de aproximadamente $20 (Automatización de tareas rutinarias con Python es gratuito en línea), por lo que me negué incluso a alquilar el libro. Desesperado por conseguir un libro para mi primera clase, me di cuenta de que estaba disponible para su uso gratuito durante una semana a través de Amazon creando una nueva cuenta. Recibí el libro durante una semana y pude completar mi primera sesión de estudio. Y mientras continuaba creando nuevas cuentas cada semana, me di cuenta de que necesitaba una mejor solución. Fue así como decidí crear mi primera aplicación en Python.
Una de las muchas bibliotecas útiles descritas en Automatización de tareas rutinarias con Python fue PyAutoGUI , que le permite controlar su mouse y teclado a través de Python. Como dice el dicho, "cuando tienes un martillo, todos los problemas parecen clavos" y esa era la descripción perfecta de mi situación. Python y PyAutoGUI me permitieron presionar flechas en mi teclado y tomar capturas de pantalla, y usé ambos para resolver el problema de mi libro. Escribí mi primer programa para desplazarme automáticamente por cada página de un libro y tomar una captura de pantalla. El programa tiene solo 10 líneas de código, pero estoy tan orgulloso de ellas como de todo lo que he hecho en la industria aeroespacial. El siguiente es un ejemplo de todo el código que escribí:
import pyautogui
import time
# Sleep for 5 seconds to allow me to open book
time.sleep(5)
# Range can be changed depending on the number of pages
for i in range(1000):
# Turn page
pyautogui.keyDown('right')
pyautogui.keyUp('right')
# Take and save a screenshot
pyautogui.screenshot('images/page_%d.pdf' % i)
time.sleep(0.05)
Es muy fácil ejecutar el programa (y animo a todos a que lo prueben). Guardé el script como book_screenshot.py, luego me moví a la línea de comando en el mismo directorio que este archivo e ingresé:
python book_screenshot.py
Después del lanzamiento, tengo 5 segundos para expandir el libro a pantalla completa. El programa hará el resto, desplazándose por cada página y tomando una captura de pantalla, que se guardará en pdf. ¡Entonces puedo combinar todos los archivos pdf en uno y obtener una copia completa (dudosamente legal) del libro! Es cierto que la copia es terrible, porque no puedes buscar en el texto a través de capturas de pantalla, pero para mí no fue tan importante.

Esto demuestra dos pensamientos principales que me han acompañado a lo largo de mi formación:
- La mejor manera de aprender algo es encontrar un problema que puedas resolver con una nueva habilidad.
- No necesitas tener una habilidad perfecta para usarlo.
Con solo un par de líneas de código y un libro gratuito, pude escribir un programa que es verdaderamente útil. Aprender las cosas básicas puede ser aburrido y mis primeros intentos de enseñar Python sufrieron el colapso después de un par de horas cuando leí sobre las estructuras de datos y los ciclos. Habiendo cambiado de táctica, comencé a crear soluciones para problemas reales y aprendí conocimientos fundamentales en paralelo. La programación es muy voluminosa, pero no necesita aprender todo a la vez. ¡Solo encuentre un problema que le gustaría resolver con la programación y comenzar!
Desde entonces, he hecho un par de programas más complejos , ¡pero todavía recuerdo con cariño mi primer guión!
Traducción del artículo William Koehrsen : Python es la herramienta perfecta para cualquier problema.