Historia
Lenguaje creado por Guido Van Rossum en Holanda en 1991. Su nombre es un homenaje a los Monty Python.
Es un lenguaje interpretado, multiplataforma y orientado a objetos. Resulta muy adecuado para la gestión de textos y es ampliamente utilizado en la web (ej. Zope).
Consideraciones a tener en cuenta
Aunque el código interpretado es más lento que el compilado, su desarrollo es más ágil y eficiente para programas cortos. Python permite importar rutinas en lenguaje C.
Cuando se importa un módulo, el intérprete genera un fichero binario con extensión .pyc, que es más rápido de cargar y permite distribuir código sin revelar el fuente. Los programas en Python suelen ser entre 2 y 4 veces más cortos que sus equivalentes en Java.
Prompt
El prompt se identifica con los caracteres «>>>», indicando que el intérprete espera una orden desde el teclado.
Expresiones
Espacios en blanco
- No se pueden colocar en medio de un número.
- No se pueden colocar al principio de una expresión.
Comentarios
Son textos ignorados por el intérprete. Se marcan con el carácter # (todo lo que sigue hasta el fin de línea es un comentario).
Operadores
Python cuenta con una amplia gama de operadores aritméticos, relacionales y lógicos. La precedencia y asociatividad determinan el orden de evaluación de las expresiones.
Tipos de Datos
- Enteros: Operaciones numéricas básicas.
- Floats: Números en coma flotante (mantisa y exponente, ej. 2e3 = 2000).
- Lógicos (Booleanos): Valores True / False.
- Caracteres: Símbolos entre comillas simples (‘) o dobles («). Funciones clave: ord() (ASCII a número) y chr() (número a ASCII).
- Cadenas (strings): Secuencias inmutables de caracteres.
Variables
Se definen mediante la sintaxis variable = expresión. Los identificadores pueden contener letras, dígitos y subrayados, pero no deben empezar por un dígito ni ser palabras reservadas. Python distingue entre mayúsculas y minúsculas.
Es un lenguaje de tipado dinámico (el tipo puede cambiar) y fuertemente tipado (consistencia en los tipos).
Asignación con operador
Existen operadores abreviados como +=, -=, *=, etc. Por ejemplo, i += 1 es equivalente a i = i + 1.
El valor None
Representa la ausencia de valor.
Cadenas
Son inmutables. Se pueden usar secuencias de escape (como \n para nueva línea o \t para tabulación). Los raw strings (precedidos por r) ignoran las secuencias de escape.
Subsecuencias (Slices)
Las cadenas permiten el troceado mediante la notación [i:j], donde i es el inicio y j el fin (exclusivo).
Listas y Tuplas
- Listas: Conjuntos ordenados y mutables. Se definen con
[]. - Tuplas: Secuencias inmutables. Se definen con
().
Estructuras de Control
- Bloques: Se definen mediante la indentación.
- Condicionales:
if,elif,else. - Repetición:
whileyfor-in. - Control de flujo:
breakpara salir de bucles ypasscomo instrucción vacía.
Funciones y Módulos
Se definen con def nombre():. Las variables son locales por defecto, a menos que se declaren como global. Los módulos son ficheros con código Python que pueden importarse mediante import o from ... import.
Diccionarios
Estructuras de pares clave-valor (vectores asociativos). Las claves deben ser objetos inmutables y únicos. Se definen con {}.
Entrada / Salida y Ficheros
Se utiliza la función print para salida estándar. Para ficheros, se emplea open(), read(), readline(), readlines() y write(), recordando siempre cerrar el descriptor con close().
