Python es un lenguaje de programación interpretado, multiparadigma y de alto nivel, conocido por su legibilidad y versatilidad. Fue creado a finales de los años 80 por Guido van Rossum en los Países Bajos como sucesor del lenguaje ABC. Su nombre proviene de la afición de Van Rossum por el grupo humorístico Monty Python.
Características principales:
- Multiparadigma: Soporta programación orientada a objetos, imperativa y funcional.
- Interpretado y dinámico: No requiere compilación y es multiplataforma.
- Licencia: Código abierto bajo la Python Software Foundation License.
- Popularidad: Consistente entre los lenguajes más populares.
Historia:
- 1991: Primera versión pública (0.9.0) con características como clases, herencia y manejo de excepciones.
- 1994: Lanzamiento de Python 1.0 con herramientas funcionales como
lambda
,map
yfilter
. - 2000: Lanzamiento de Python 2.0, que introdujo listas por comprensión y recolección de basura para referencias cíclicas.
- Compatibilidad GPL: En 2001, la licencia fue ajustada para ser compatible con la GNU GPL.
Filosofía:
La filosofía de Python está resumida en "El Zen de Python", escrito por Tim Peters. Destaca principios como la simplicidad, la legibilidad y la preferencia por una única manera obvia de hacer las cosas. Ejemplo: "Bello es mejor que feo" y "Explícito es mejor que implícito".
Tipos de datos:
Python incluye tipos básicos como cadenas (str
), listas (list
), tuplas (tuple
), conjuntos (set
), diccionarios (dict
), números enteros (int
), flotantes (float
) y booleanos (bool
). Estos pueden ser mutables o inmutables.
Condicionales:
Las estructuras condicionales (if
, elif
, else
) permiten ejecutar bloques de código basados en condiciones específicas. Ejemplo:
if verdadero:
print("Verdadero")
else:
print("Falso")
Bucle for
- El bucle
for
en Python es similar alforeach
de otros lenguajes. Recorre objetos iterables como listas, tuplas o cadenas. - Ejemplo:
Salida:for i in ["a", "b", "c"]: print(i)
a b c
Bucle while
- El bucle
while
evalúa una condición y ejecuta el bloque de código mientras sea verdadera. - Ejemplo:
Salida:numero = 0 while numero < 5: print(numero, end=" ") numero += 1
0 1 2 3 4
Listas y Tuplas
- Listas (
list
): Mutables, declaradas con corchetes[]
. Permiten modificar, añadir o eliminar elementos.- Ejemplo:
lista = ["abc", 42, 3.14] lista.append(True) # Añade un elemento del lista[0] # Elimina un elemento
- Ejemplo:
- Tuplas (
tuple
): Inmutables, declaradas con paréntesis()
. No permiten modificar su contenido después de ser creadas.- Ejemplo:
tupla = ("abc", 42, 3.14) tupla[0] # Acceso al primer elemento
- Ejemplo:
Diccionarios
- Colecciones de pares clave-valor, declarados con llaves
{}
. Las claves deben ser inmutables (e.g., cadenas, tuplas). - Ejemplo:
diccionario = {"nombre": "Alicia", "edad": 20} diccionario["nombre"] # Acceso al valor por clave diccionario["edad"] = 21 # Modificación de un valor
Sentencia match-case
(Python 3.10+)
- Introduce Structural Pattern Matching, más avanzado que el clásico
switch-case
. Permite comparar valores, tipos y atributos, además de desempaquetar secuencias. - Ejemplo:
match coordenada: case Punto(x=10, y=40): print("Coordenada 10, 40") case Punto(): print("Es un punto") case _: print("No es un punto")
Conjuntos
- Colecciones no ordenadas y sin duplicados, útiles para operaciones matemáticas como intersección, unión y diferencia.
- Ejemplo:
conjunto1 = set(["a", "b"]) conjunto2 = set(["b", "c"]) conjunto1 & conjunto2 # Intersección: {'b'} conjunto1 | conjunto2 # Unión: {'a', 'b', 'c'}
Listas por Comprensión
- Forma compacta de crear listas basadas en iterables.
- Ejemplo:
cuadrados = [i * i for i in range(5)] # Resultado: [0, 1, 4, 9, 16]
Funciones
- Definidas con
def
: Bloques reutilizables de código.- Ejemplo:
def suma(x, y=2): return x + y suma(4) # Resultado: 6
- Ejemplo:
- Argumentos variables:
*args
: Recibe argumentos posicionales como tupla.**kwargs
: Recibe argumentos clave-valor como diccionario.
- Funciones lambda: Funciones anónimas de una sola línea.
- Ejemplo:
suma = lambda x, y: x + y suma(4, 10) # Resultado: 14
- Ejemplo: