Respuesta:
- Introducción Python es un lenguaje de programación interpretado, de alto nivel y multiparadigma, que prioriza la legibilidad del código. Se usa en diversas aplicaciones como Instagram, Netflix y Spotify. Es administrado por la Python Software Foundation y cuenta con licencia de código abierto. Su popularidad se debe a su facilidad de adopción, compatibilidad multiplataforma y flexibilidad para distintos paradigmas.
- Historia Python fue creado en los años 80 por Guido van Rossum en CWI, Países Bajos. Su primera versión, 0.9.0, se lanzó en 1991 con manejo de excepciones y estructuras modulares. La versión 1.0 (1994) introdujo programación funcional. En 2000, la versión 2.0 añadió recolección de basura y listas por comprensión. En 2001, su licencia se volvió compatible con GNU GPL, consolidando a Python en la comunidad de software libre.
- Filosofía Python sigue principios como claridad y simplicidad, plasmados en "El Zen de Python" de Tim Peters. Destacan la legibilidad, la simplicidad sobre la complejidad y la preferencia por una sola manera obvia de hacer las cosas. Desde la versión 2.1.2, estos principios pueden consultarse con import this. Gracias a su diseño intuitivo y su comunidad activa, Python sigue siendo una herramienta clave en el desarrollo de software moderno.
- Tipos de Datos Cadenas (str) y bytes: Inmutables. Listas (list): Mutables, almacenan elementos de cualquier tipo. Tuplas (tuple): Inmutables, útiles para conjuntos fijos de datos. Conjuntos (set): No permiten duplicados, mutables. Diccionarios (dict): Pares clave-valor, mutables. Números: int (enteros), float (flotantes), complex (números complejos). Booleanos (bool): Solo valores True o False.
- Condicionales Las sentencias condicionales ejecutan un bloque de código solo si se cumple una condición, usando if, elif y else. Se evalúan en orden hasta encontrar la primera verdadera.
verdadero = True
if verdadero:
print("Verdadero")
else:
print("Falso")
- Bucle for El bucle for itera sobre un objeto iterable (listas, cadenas, etc.) y ejecuta un bloque de código por cada elemento.
cadena = "abcdef"
for i in cadena:
print(i, end=', ')
Salida:
a, b, c, d, e, f,
- Bucle while El bucle while ejecuta un bloque de código mientras la condición sea verdadera.
numero = 0
while numero < 5:
print(numero, end=' ')
numero += 1
0 1 2 3 4
- Listas y Tuplas en Python Las listas y tuplas son estructuras de datos que almacenan múltiples elementos en una sola variable. La principal diferencia entre ellas es que las listas son mutables (se pueden modificar), mientras que las tuplas son inmutables (no pueden cambiarse después de su creación). Listas: Se definen con corchetes []. Pueden contener diferentes tipos de datos. Se pueden modificar en tiempo de ejecución. Permiten añadir, eliminar y modificar elementos. Ejemplo:
lista = ["abc", 42, 3.1415]
print(lista[0]) # 'abc'
lista.append(True) # Agrega un elemento al final
lista[0] = "xyz" # Modifica el primer elemento
print(lista) # ['xyz', 42, 3.1415, True]
Tuplas Se definen con paréntesis (). No se pueden modificar después de su creación. Son útiles para almacenar datos inmutables y estructurados. Ejemplo:
tupla = ("abc", 42, 3.1415)
print(tupla[0]) # 'abc'
tupla[0] = "xyz" # Error: no se pueden modificar los elementos
Ambas estructuras permiten el acceso mediante índices y pueden contener otras listas o tuplas anidadas. Las listas son ideales para datos que pueden cambiar, mientras que las tuplas son más eficientes en términos de rendimiento cuando los datos son constantes. Los diccionarios en Python usan {} y almacenan pares clave-valor, donde las claves deben ser inmutables, pero los valores pueden ser de cualquier tipo, incluso listas o diccionarios. Son mutables, permitiendo modificar valores y agregar nuevas claves. La sentencia match-case (desde Python 3.10) es una estructura avanzada similar a switch-case, permitiendo comparaciones de valores, tipos y atributos. Puede desempaquetar datos y realizar comprobaciones detalladas. Antes de match-case, se usaba if-elif-else para evaluar múltiples condiciones, aunque su desventaja es la evaluación secuencial, que puede ser menos eficiente con muchas opciones. Los diccionarios pueden reemplazar estructuras if-elif-else para ejecutar funciones dinámicamente usando lambda. Los conjuntos (set) eliminan duplicados y permiten operaciones matemáticas como unión, intersección y diferencia. Las listas por comprensión crean listas de forma compacta y eficiente. Las funciones pueden definirse con def, aceptar argumentos variables con *args (tupla) y **kwargs (diccionario), y usar lambda para funciones anónimas. Las clases permiten modelar objetos con atributos y métodos. init inicializa instancias, y los atributos se manejan con self. Python no tiene encapsulamiento estricto, dejando la responsabilidad al programador.