Python es un lenguaje de programación de alto nivel conocido por su legibilidad y versatilidad, utilizado en aplicaciones como Instagram y Netflix. Es multiparadigma, soportando la orientación a objetos, programación imperativa y funcional en menor medida. Administrado por Python Software Foundation, tiene una licencia de código abierto y es considerado uno de los lenguajes más populares.
Historia: Python fue creado por Guido van Rossum a finales de los 80 en los Países Bajos, como sucesor del lenguaje ABC. El nombre proviene de los humoristas Monty Python. Van Rossum, conocido como BDFL, lanzó la primera versión en 1991 con características como clases y manejo de excepciones. Python 1.0 se lanzó en 1994, incluyendo herramientas funcionales. En 2000, el equipo de desarrollo se trasladó a BeOpen.com y luego a Digital Creations, lanzando Python 2.0 con mejoras como listas por comprensión. La licencia se ajustó para ser compatible con GPL, y van Rossum recibió un premio de FSF en 2001.
Filosofia: La filosofía de Python, similar a la de Unix, se describe en "El Zen de Python" por Tim Peters. Sus principios incluyen: la belleza sobre la fealdad, la explicitud sobre la implicitud, la simplicidad sobre la complejidad, y la legibilidad. Destaca la importancia de tener una forma obvia de hacer las cosas, evitar errores silenciosos y preferir lo práctico sobre lo puro. Estos principios están incorporados como un huevo de pascua en Python desde la versión 2.1.2. Los tipos de datos en Python pueden ser mutables, como las listas, o inmutables, como las tuplas. Las sentencias condicionales, usando if, elif, y else, permiten ejecutar código basado en condiciones. Los bucles for recorren elementos de un iterable, mientras que los bucles while ejecutan un bloque de código mientras una condición sea verdadera. Las listas, declaradas con corchetes [], y las tuplas, declaradas con paréntesis (), pueden contener elementos de distintos tipos. Las listas son mutables y las tuplas son inmutables. Los diccionarios en Python, declarados con llaves {}, contienen pares clave-valor, son mutables y sus claves deben ser inmutables. La estructura match-case, disponible desde Python 3.10, permite comparaciones avanzadas y desempaquetado de datos. Los conjuntos, creados con set(items), no tienen orden y no permiten duplicados, útiles para operaciones matemáticas. Las funciones se definen con def y pueden usar *args y **kwargs para argumentos variables. Las clases, definidas con class, pueden tener métodos y atributos, y el método init inicializa instancias. En Python, el encapsulamiento no es obligatorio, dejando al programador la gestión de los atributos.