Introducción: Python es un lenguaje de programación de alto nivel, interpretado y conocido por su legibilidad, utilizado en aplicaciones como Instagram y Netflix. Es multiparadigma, dinámico, multiplataforma y gestionado por la Python Software Foundation bajo una licencia de código abierto.
Historia: Creado por Guido van Rossum a finales de los 80, Python fue publicado en 1991. Evolucionó con características de otros lenguajes, alcanzando la versión 1.0 en 1994 y la 2.0 en 2000. En 2001, su licencia se hizo compatible con GPL, y van Rossum recibió un premio por su contribución al software libre.
Filosofía: Python promueve la simplicidad, legibilidad y soluciones prácticas, en línea con la filosofía de Unix. "El Zen de Python" de Tim Peters, integrado como un "huevo de pascua" desde la versión 2.1.2, resalta la belleza, explicitud y claridad en el código.
Tipos de datos: Incluyen str, bytes, list, tuple, set, frozenset, dict, int, float, complex, y bool. Las estructuras pueden ser mutables o inmutables.
Condicionales: Las sentencias if, elif, y else ejecutan bloques de código basados en condiciones. match-case en Python 3.10 ofrece una comparación estructural avanzada.
Bucles: for recorre objetos iterables y ejecuta un bloque de código por cada elemento, mientras que while ejecuta un bloque mientras una condición sea verdadera.
Diccionarios: Declarados con {}, contienen pares clave-valor, son mutables y sus claves deben ser inmutables. Permiten asociar operaciones a claves usando lambdas para optimizar la selección de operaciones.
Conjuntos: Creación con set(items), sin mantener orden ni duplicados. Útiles para operaciones de intersección, unión, diferencia y diferencia simétrica.
Listas por comprensión: Definen listas de manera compacta y concisa, realizando operaciones sobre iterables.
Funciones: Definidas con def, pueden recibir parámetros fijos, *args (argumentos variables) y **kwargs (argumentos por clave). Las lambdas permiten definir funciones breves.
Clases: Definidas con class, contienen métodos y atributos. El método init inicializa la instancia y los atributos se declaran con self. Las clases en Python carecen de encapsulamiento estricto.