Introducción a Python
Python
Introducción
Python es un lenguaje de programación interpretado y de alto nivel que se utiliza para una
amplia variedad de tareas de programación, desde el desarrollo web y de aplicaciones hasta la
ciencia de datos y el aprendizaje automático. Es conocido por su sintaxis limpia y fácil de leer, lo
que lo hace especialmente útil para programadores principiantes, pero también es muy popular
entre los desarrolladores experimentados debido a su potencia y flexibilidad. Python es un
lenguaje de programación multiparadigma, lo que significa que admite múltiples enfoques para
la programación, incluida la programación orientada a objetos, la programación funcional y la
programación imperativa. Python es gratuito y de código abierto, lo que significa que se puede
utilizar, copiar, modificar y distribuir libremente. Además, cuenta con una amplia comunidad de
usuarios y desarrolladores que trabajan en proyectos de código abierto y proporcionan soporte
y recursos en línea.
Python es principalmente un lenguaje orientado a objetos y cuenta con una amplia variedad de
módulos y bibliotecas que permiten el desarrollo de aplicaciones de propósito general,
científicas y de análisis de datos, entre otras. Además, Python es multiplataforma, lo que
significa que puede ser utilizado en diferentes sistemas operativos como Windows, Linux y
MacOS.
Creado a finales de los 80/principios de los 90 por Guido van Rossum, holandés que trabajaba
por aquella época en el Centro para las Matemáticas y la Informática de los Países Bajos. Sus
instrucciones están muy cercanas al lenguaje natural en inglés y se hace hincapié en la legibilidad
del código. Toma su nombre de los Monty Python, grupo humorista de los 60 que gustaban
mucho a Guido. Python fue creado como sucesor del lenguaje ABC
Características del lenguaje
Según Wikipedia:
Python es un lenguaje de programación interpretado y multiplataforma cuya filosofía
hace hincapié en una sintaxis que favorezca un código legible.
Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a
objetos, programación imperativa y, en menor medida, programación funcional.
Se puede agregar que, como característica destacada, que se trata de un lenguaje de
propósito general.
Ventajas
• Libre y gratuito (OpenSource).
• Fácil de leer, parecido a pseudocódigo.
• Aprendizaje relativamente fácil y rápido: claro, intuitivo….
• Alto nivel.
• Alta Productividad: simple y rápido.
• Tiende a producir un buen código: orden, limpieza, elegancia, flexibilidad
• Multiplataforma. Portable.
• Multiparadigma: programación imperativa, orientada a objetos, funcional
• Interactivo, modular, dinámico.
• Librerías extensivas («pilas incluidas»).
• Gran cantidad de librerías de terceros.
• Extensible (C++, C, etc.) y «embebible».
• Gran comunidad, amplio soporte.
Desventajas
• Interpretado
• Consumo de memoria.
• Errores durante la ejecución.
• Dos versiones mayores no del todo compatibles (v2 vs v3).
• Desarrollo móvil.
• Documentación a veces dispersa e incompleta.
• Varios módulos para la misma funcionalidad.
• Librerías de terceros no siempre del todo maduras.
Uso de Python
Al ser un lenguaje de propósito general, se pueden encontrar aplicaciones prácticamente en
todos los campos científico-tecnológicos:
• Análisis de datos.
• Aplicaciones de escritorio.
• Bases de datos relacionales / NoSQL
• Buenas prácticas de programación / Patrones de diseño.
• Criptomonedas / Blockchain.
• Desarrollo de aplicaciones multimedia.
• Desarrollo de juegos.
• Desarrollo en dispositivos embebidos.
• Desarrollo web.
• DevOps / Administración de sistemas / Scripts de automatización.
• Gráficos por ordenador.
• Inteligencia artificial.
• Internet de las cosas.
• Machine Learning.
• Programación de redes.
• Propósitos educativos.
• Prototipado de software.
• Seguridad.
• Tests automatizados
De igual modo son muchas las empresas, instituciones y organismos que utilizan Python en su
día a día para mejorar sus sistemas de información. Algunas de las más relevantes:
Existen ránkings y estudios de mercado que sitúan a Python como uno de los lenguajes más
usados y la vez, más amados dentro del mundo del desarrollo de software. En el momento de la
escritura de este documento, la última actualización del Índice TIOBE es de febrero de 2022 en
el que Python ocupaba el primer lugar de los lenguajes de programación más usados, por
delante de C y Java.
Zen de Python
Existen una serie de reglas «filosóficas» que indican una manera de hacer y de pensar dentro
del mundo pitónico2 creadas por Tim Peters, llamadas el Zen de Python y que se pueden aplicar
incluso más allá de la programación:
Traducción
• Bello es mejor que feo.
• Explícito es mejor que implícito.
• Simple es mejor que complejo.
• Complejo es mejor que complicado.
• Plano es mejor que anidado.
• Espaciado es mejor que denso.
• La legibilidad es importante.
• Los casos especiales no son lo suficientemente especiales como para romper las reglas.
• Sin embargo la practicidad le gana a la pureza.
• Los errores nunca deberían pasar silenciosamente.
• A menos que se silencien explícitamente.
• Frente a la ambigüedad, evitar la tentación de adivinar.
• Debería haber una, y preferiblemente solo una, manera obvia de hacerlo
• A pesar de que esa manera no sea obvia a menos que seas holandés.
• Ahora es mejor que nunca.
• A pesar de que nunca es muchas veces mejor que ahora mismo.
• Si la implementación es difícil de explicar, es una mala idea.
• Si la implementación es fácil de explicar, puede que sea una buena idea.
• Los espacios de nombres son una gran idea, ¡tengamos más de esos!
Consejos para programar según codewithvoid
Un listado de consejos muy interesantes:
1. Escribir código es el último paso del proceso.
2. Para resolver problemas: pizarra mejor que teclado.
3. Escribir código sin planificar = estrés.
4. Pareces más inteligente siendo claro, no siendo más listo.
5. La consistencia a largo plazo es mejor que la intensidad a corto plazo.
6. La solución primero. La optimización después.
7. Gran parte de la programación es resolución de problemas.
8. Piensa en múltiples soluciones antes de decidirte por una.
9. Se aprende construyendo proyectos, no tomando cursos.
10. Siempre elije simplicidad. Las soluciones simples son más fáciles de escribir.
11. Los errores son inevitables al escribir código. Sólo te dicen lo que no hacer.
12. Fallar es barato en programación. Aprende haciendo.
13. Gran parte de la programación es investigación.
14. La programación en pareja te enseñará mucho más que escribir código.
15. Convierte en un hábito el hecho de pedir ayuda.
16. Pierdes 0 credibilidad pidiendo ayuda.
17. El tiempo gastado en entender el problema está bien invertido.
18. Cuando estés bloqueado con un problema: sé curioso, no te frustres.
19. Piensa en posibles escenarios y situaciones extremas antes de resolver.
20. No te estreses con la sintaxis de programación. Entiende conceptos.
21. Aprende a ser un buen corrector de errores. Esto se amortiza.
22. Conoce pronto los atajos de teclado de un editor favorito.
23. Tu código es tan claro como tú lo piensas.
24. Gastarás el doble de tiempo en corregir errores que en escribir código.
25. Saber buscar bien en Google es una habilidad valiosa.
26. Lee código de otras personas para inspirarte.
27. Únete a comunidades de desarrollo para aprender con otros/as programadores/as.
Metodologías de programación
• Programación Estructurada
• Programación Modular
• Programación Orientada a Objetos
La Programación Estructurada usa instrucciones de control básicas con el objetivo de mantener
la claridad en la codificación de un programa o módulo. Esta metodología enfatiza el desarrollo
de la programación al nivel de detalle.
La Programación Modular divide el desarrollo de programas, usualmente complejos o grandes,
en subprogramas o módulos que facilitan la codificación y la validación. Esta metodología
orienta la organización de la programación mediante la construcción de bloques o módulos y su
integración.
La Programación Orientada a Objetos permite a los programadores organizar el diseño de un
proyecto de programación definiendo objetos relacionados con el problema que se intenta
modelar. En esta metodología las estructuras de los datos son el centro alrededor del cual se
desarrolla la programación.
En este trayecto se desarrollará el aprendizaje de la programación con el lenguaje Python
aplicando estas metodologías sucesivamente en el orden indicado. Al final, cada usuario podrá
reconocerlas y agregará su propio estilo de programación.
Factores para elegir un lenguaje de programación
• Propósito o aplicación: general o dedicado
• Características operativas: interacción, tipos de datos, control de excepciones
• Soporte técnico: disponibilidad, sistemas operativos, documentación, comunidad
• Metodologías de programación aplicables
• Facilidad y tiempo para el aprendizaje
• Legibilidad de la codificación
• Eficiencia de los programas resultantes
• Productividad: velocidad de desarrollo de los programas
• Perspectivas a futuro para desarrollo y crecimiento del lenguaje
Se dice que un programador debe conocer al menos dos lenguajes de programación. El primero
puede ser Python y el siguiente C++, Java, etc. Sin embargo Python puede ser el primero y único
lenguaje computacional que necesitan la mayoría de usuarios
Lenguajes compilados y lenguajes interpretados
Compilar es el proceso de traducir un programa escrito por un usuario en algún lenguaje de
programación al lenguaje con el que opera un computador. Para que un programa pueda
compilarse debe estar completo y sin errores.
Interpretar un programa es el proceso de traducir y ejecutar en forma progresiva las
instrucciones de un programa escrito por un usuario. En esta modalidad, el programa no
requiere estar completo para que se pueda probar. Los errores son detectados a medida que
progresa la traducción y ejecución.
C++ es un lenguaje de programación que opera en la modalidad de compilación, mientras que
Python es un lenguaje interpretado.
Los compiladores como C++ tienen una ventana para el desarrollo de la programación en la cual
se escribe el programa. El programa se compila y si no hay errores se genera un programa
ejecutable autónomo que no requiere que el traductor esté presente. El programa ejecutable
resultante es muy eficiente.
Los interpretadores de lenguaje como Python tienen una ventana interactiva para pruebas y una
ventana de edición para crear los programas. Este entorno permite realizar pruebas durante el
desarrollo, con lo cual mejora la productividad. Los resultados se muestran en la ventana
interactiva y se requiere que el interpretador de instrucciones esté presente.
Los programas resultantes no son muy eficientes, pero el desarrollo y pruebas son eficientes.
Actualmente existen compiladores para generar programas ejecutables a partir de programas
construidos con lenguajes interpretados. Igualmente, se pueden incorporar componentes
compilados a un programa interpretado.
Desarrollo de programas en el lenguaje Python
Un programa es la descripción de un algoritmo en un lenguaje computacional. En la terminología
de Python, un programa se denomina módulo.
Para escribir un programa es necesario haber conceptualizado o construido el algoritmo para
resolver el problema de interés y conocer las reglas de sintaxis y semántica del lenguaje
computacional que será usado. También deberá tener instalado en su computadora el traductor
del lenguaje. En este documento se usará una interfaz de Python para desarrollo denominada
IDLE (Interactive DeveLopment Environment). Adicionalmente se pueden instalar extensiones
del lenguaje que han sido desarrollados para aplicaciones especiales.