Historia Python es un lenguaje de programación de alto nivel, interpretado, multiparadigma y multiplataforma, creado por Guido van Rossum a finales de los 80 como sucesor de ABC. Se destaca por su sintaxis clara y legibilidad. Fue lanzado en 1991 y ha evolucionado con características como manejo de excepciones, programación funcional y listas por comprensión. En sus inicios, se utilizó para promover la accesibilidad a la programación. Python 2.0 introdujo la recolección de basura y la compatibilidad con la GNU GPL. Es administrado por la Python Software Foundation y sigue siendo uno de los lenguajes más populares.
Filosofía La filosofía de Python, reflejada en "El Zen de Python" de Tim Peters, promueve principios como la simplicidad, legibilidad y la preferencia por lo explícito sobre lo implícito. Se prioriza lo práctico sobre lo purista y se fomenta que haya una única forma clara de hacer las cosas. Los tipos de datos básicos de Python incluyen cadenas (str), listas (list), tuplas (tuple), conjuntos (set), diccionarios (dict), y varios tipos numéricos como int, float y complex, entre otros. Los datos pueden ser mutables (modificables en tiempo de ejecución) o inmutables (no modificables). Las estructuras condicionales en Python se definen con if, elif y else, permitiendo ejecutar bloques de código según condiciones evaluadas. Los bucles for permiten iterar sobre objetos iterables (como listas o cadenas), y los bucles while repiten bloques de código mientras una condición sea verdadera.
Listas y Tuplas Las listas se declaran con corchetes [] y las tuplas con paréntesis (). Ambas pueden contener elementos de diferentes tipos, pero las listas son mutables (pueden cambiarse en tiempo de ejecución), mientras que las tuplas son inmutables. Para acceder a los elementos se usan índices, empezando desde 0 y también se pueden usar índices negativos. Las listas suelen tener elementos del mismo tipo y cantidad variable, mientras que las tuplas se usan para elementos de tipos diferentes y cantidad fija.
Diccionarios Se declaran con llaves {} y contienen pares clave:valor. Son mutables, pero las claves deben ser inmutables. Se pueden acceder y modificar valores usando las claves, y es posible tener valores complejos como listas o incluso otros diccionarios. Sentencia match-case Disponible desde Python 3.10, permite hacer comparaciones complejas, como comprobar tipos o atributos de objetos, e incluso desempaquetar secuencias. Es más avanzado que el clásico switch-case.
Conjuntos Se definen con set(), son mutables, no mantienen el orden y no permiten duplicados. Son útiles para eliminar duplicados y hacer operaciones matemáticas como intersección, unión y diferencia. Listas por comprensión Permiten crear listas de manera compacta y eficiente, utilizando una sola línea de código. Ejemplo: [i * i for i in range(5)].
Funciones Se definen con def y pueden usar parámetros especiales como *args (número variable de argumentos) y **kwargs (número variable de argumentos por palabra clave). Las funciones también pueden ser anónimas usando lambda. Clases Se definen con class y pueden tener métodos (funciones) y atributos (variables). El método init se ejecuta al crear una instancia de la clase. Los atributos accesibles desde fuera de la clase se definen con self.