Apéndice A: Glosario Técnico
A
Algoritmo
Secuencia finita de pasos con definición precisa para resolver un problema concreto. Cada instrucción tiene que ser ejecutable y el proceso tiene que terminar. Primero aparece en el Cap. 1.
API (Application Programming Interface)
Contrato entre dos piezas de software. Define qué operaciones ofrece un sistema y cómo pedirlas, sin exponer cómo están implementadas por dentro. Primero aparece en el Cap. 12 (el desafío de exponer el SGI vía API REST); se retoma en el Cap. 14.
Argumento
Valor concreto que envías a una función al llamarla. En print("Hola"), el texto "Hola" es el argumento. No confundir con parámetro: el parámetro es el hueco, el argumento es lo que metes en él. Primero aparece en el Cap. 9.
assert
Comprobación de una suposición: assert x == 5 no hace nada si es cierta y detiene el programa con AssertionError si no. Herramienta de pruebas para tu código, no de validación de datos del usuario (para eso, raise). Primero aparece en el Cap. 12.
B
Booleano
Tipo de dato con exactamente dos estados posibles: True (verdadero) o False (falso). Toda lógica condicional en programación descansa sobre él. Primero aparece en el Cap. 4; se reutiliza en el Cap. 6 y el Cap. 7.
Bucle
Estructura que repite un bloque de código varias veces. Python tiene dos: for (recorre una colección, elemento por elemento) y while (repite mientras una condición siga siendo verdadera). Aparece de forma informal desde el Cap. 5 (el primer for); el Cap. 8 lo trata de forma sistemática y se reutiliza en el Cap. 12.
Bug
Defecto en el código que produce un comportamiento distinto al esperado. Puede ser un error de lógica, un dato mal formateado o un caso que el programador no anticipó. Aparece de forma informal desde el Cap. 4; el Cap. 10 (Control de Daños) lo trata de forma sistemática.
C
Clave (Key)
La etiqueta única que localiza una pareja dentro de un diccionario, la puerta del casillero. Se usa para guardar (diccionario[clave] = valor) y para leer (diccionario[clave]); pedir una clave que no existe con corchetes rompe el programa con KeyError. No confundir con el valor: la clave es la etiqueta, el valor es lo que hay adentro. Primero aparece en el Cap. 5.
Comprehension (List Comprehension)
Forma compacta de construir una lista transformando y filtrando otra colección en una sola expresión: [c for c in cajas if c != "ROTA"]. Equivale a un for con append, en una línea. Primero aparece en el Cap. 8.
Conjunto (set)
Colección sin orden y sin duplicados. Meter dos veces el mismo valor deja uno solo, y preguntar con in es casi instantáneo. La tolva del almacén: lo repetido se funde. Primero aparece en el Cap. 4; profundiza en el Cap. 5.
Contexto (Scope)
Territorio donde una variable existe; también llamado ámbito. Las variables creadas dentro de una función son locales (nacen y mueren con la llamada); las del programa principal son globales (una función puede leerlas, pero asignarles crea una local nueva). La comunicación sana entre contextos es vía parámetros y return. No confundir con el gestor de contexto de with, que es otra cosa. Primero aparece en el Cap. 9.
CSV
Formato de archivo de texto para datos tabulares: una línea por registro, columnas separadas por comas. Python lo lee y escribe con el módulo csv de la biblioteca estándar, que maneja por ti las comas y comillas dentro de los valores. Primero aparece en el Cap. 11; se reutiliza en el Cap. 12.
D
Diccionario
Estructura de datos de Python (dict) que guarda parejas clave-valor. Buscas por nombre, no por posición: los casilleros de seguridad del almacén. Primero aparece en el Cap. 4; profundiza en el Cap. 5 y se reutiliza en el Cap. 11 (JSON) y el Cap. 12.
E
Encoding (UTF-8)
Tabla de correspondencia entre las letras y los números que un archivo realmente guarda. UTF-8 es el estándar que cubre todos los idiomas; usar encodings distintos al escribir y al leer produce el clásico Añejo. La regla: encoding="utf-8" en cada operación de archivo. Primero aparece en el Cap. 11; se reutiliza en el Cap. 12 y el Cap. 13.
Excepción
Error que ocurre mientras el programa corre (no al escribirlo): dividir por cero, convertir "hola" a entero, abrir un archivo que no existe. Si no la manejas con try/except, detiene el programa en seco. Aparece de forma informal desde el Cap. 4 (ValueError al convertir tipos) y el Cap. 6 (ZeroDivisionError, TypeError); el Cap. 10 la trata de forma sistemática y se reutiliza en el Cap. 11 y el Cap. 12.
Expresión
Cualquier combinación de valores, variables y operadores que Python puede evaluar para producir un resultado: 3 * 4, peso > 20 and stock > 0, hasta el nombre de una variable sola. La instrucción que la contiene decide qué hacer con ese resultado; la expresión solo lo calcula. Primero aparece en el Cap. 6; se reutiliza en el Cap. 8 (comprehensions) y el Cap. 10 (al leer un traceback).
F
F-string
Cadena de texto con una f antes de las comillas que permite incrustar variables entre llaves: f"Hola {nombre}". La forma estándar de construir mensajes en Python moderno. Primero aparece en el Cap. 4; se reutiliza en el Cap. 9 y el Cap. 12.
finally
Bloque opcional de try/except que se ejecuta siempre, haya error o no. Se usa para tareas de cierre que no admiten excusa, como liberar un recurso. Primero aparece en el Cap. 10; su idea se empaqueta en el with del Cap. 11.
Framework
Armazón de herramientas y convenciones sobre el que se construye una aplicación. No resuelve el problema por ti, pero te evita partir desde cero en cada proyecto. No se enseña en un capítulo dedicado; se menciona en el Apéndice C (Recursos).
Función
Bloque de código con nombre propio que encapsula una tarea específica y se puede invocar cuantas veces sea necesario. Primero aparece en el Cap. 9; se reutiliza en el Cap. 12.
G
Gestor de Contexto (with)
Construcción que garantiza que un recurso se cierre solo al terminar, aunque ocurra un error a medio camino. with open(...) as f: abre un archivo y lo cierra por ti al salir del bloque. Primero aparece en el Cap. 11; el Cap. 10 ya adelanta la misma idea con try/finally.
I
IDE (Integrated Development Environment)
Entorno que reúne editor, depurador y terminal en una sola interfaz. La ventaja real no es la comodidad sino la velocidad con que detectas errores mientras escribes. Primero aparece en el Cap. 2.
Import (Importar)
Sentencia que trae a tu programa el código de un módulo: import json o from pathlib import Path. Es la puerta de acceso a la biblioteca estándar y a los paquetes externos. Primero aparece en el Cap. 11; se reutiliza en el Cap. 12 y el Cap. 13.
Indentación
Los espacios en blanco al inicio de una línea que agrupan el código dentro de un bloque: cuatro espacios por nivel, nunca tabuladores. En Python no es un adorno visual, es parte de la sintaxis, y define qué líneas pertenecen a qué bloque. Primero aparece en el Cap. 3.
Intérprete
Programa que ejecuta el código fuente directamente, sin que tú generes un binario aparte. Python funciona así: primero traduce el archivo completo a un código intermedio (por eso un error de sintaxis detiene todo antes de ejecutar la primera línea) y luego lo va ejecutando. Primero aparece en el Cap. 2; se retoma en el Cap. 10 al leer un traceback.
J
JSON
Formato de texto para datos estructurados que mapea uno a uno con las listas y diccionarios de Python. Se lee y escribe con el módulo json (json.dump / json.load) sin perder los tipos. Primero aparece en el Cap. 11; se reutiliza en el Cap. 12 y el Cap. 13.
L
Librería (Library)
Colección de código ya escrito y probado que resuelve problemas comunes. En español también se le llama biblioteca (la traducción más fiel de library); este libro usa ambos términos como sinónimos. Usarla bien es saber exactamente qué problema delega en ella y cuál sigue siendo tuyo. Primero aparece en el Cap. 2; se explica a fondo en el Cap. 11 y se reutiliza en el Cap. 12.
Lista
Colección ordenada y modificable (list): el estante numerado del almacén. Se accede por índice desde 0, crece con append y admite mezclar tipos. Primero aparece en el Cap. 4; profundiza en el Cap. 5 y se reutiliza en el Cap. 8 y el Cap. 12.
M
Módulo
Archivo de Python con código reutilizable (funciones, constantes, clases) que otros programas importan. La biblioteca estándar es una gran colección de módulos listos para usar. Primero aparece en el Cap. 11; se reutiliza en el Cap. 12.
Mutabilidad
Propiedad de un objeto de poder cambiar por dentro. Listas, diccionarios y sets son mutables; números, textos y tuplas, no. Importa porque dos variables pueden compartir el mismo objeto mutable (aliasing) y los cambios se ven por ambas. Primero aparece en el Cap. 4; se reutiliza en el Cap. 5 y el Cap. 9.
P
Parámetro
Nombre que una función declara para recibir datos. Es el hueco en el formulario; el argumento es el dato que llega cuando alguien lo llena. Primero aparece en el Cap. 9; se reutiliza en el Cap. 12.
Path (pathlib)
Objeto que representa una ruta de archivo o carpeta de forma portátil entre sistemas. Sabe unirse con /, preguntarse .exists(), leerse (read_text) y recorrer carpetas (iterdir). Primero aparece en el Cap. 11; se reutiliza en el Cap. 12 y el Cap. 13.
Persistencia
Capacidad de los datos de sobrevivir al programa que los creó: salir de la RAM volátil y quedar en disco (archivos, CSV, JSON). Sin persistencia, cada ejecución arranca de cero. Primero aparece en el Cap. 11; se reutiliza en el Cap. 12.
pip
El instalador de paquetes de Python: descarga librerías de terceros (pip install nombre) al entorno activo y lista lo instalado (pip list). Los proyectos del libro no lo necesitan (todo su código es biblioteca estándar), pero es la puerta al ecosistema. Primero aparece en el Cap. 2; se retoma en el Cap. 11.
Precedencia de Operadores
El orden en que Python resuelve las operaciones dentro de una expresión cuando no hay paréntesis: multiplicación y división antes que suma y resta, igual que en la aritmética escolar. Los paréntesis siempre pueden forzar un orden distinto y hacerlo explícito. Primero aparece en el Cap. 6.
Programación Orientada a Objetos (POO)
Paradigma que junta datos y comportamiento en una sola pieza: una clase Producto que sabe rebajar su propio stock, en vez de un diccionario suelto y funciones sueltas que lo manipulan. El libro no la enseña (el proyecto integrador no la necesitaba), pero es el escalón natural del lenguaje después de dominar funciones y diccionarios. Aparece de forma informal desde el Cap. 4; el Cap. 14 la presenta como el siguiente tema a seguir.
R
raise
Palabra clave para lanzar una excepción a propósito: raise ValueError("mensaje"). Así es como tu propio código rechaza datos inválidos con la misma maquinaria de alarmas que usa Python. Primero aparece en el Cap. 10; se reutiliza en el Cap. 12.
return
Palabra clave que termina una función y entrega un valor a quien la llamó. Una función sin return devuelve None. Primero aparece en el Cap. 9; se reutiliza en el Cap. 12.
S
Sintaxis
El conjunto de reglas gramaticales que Python exige antes de ejecutar cualquier instrucción, el Protocolo Estándar del Almacén Digital. Incumplirla detiene la operación de golpe: un SyntaxError bloquea el programa antes de correr la primera línea. Aparece de forma informal desde el Cap. 1; el Cap. 3 la trata de forma sistemática.
Slicing (Rebanado)
Extraer un fragmento de una secuencia con [inicio:fin]: codigo[0:3], lista[-2:]. Funciona igual en textos, listas y tuplas; el índice fin no se incluye. Primero aparece en el Cap. 4 (con texto); se reutiliza en el Cap. 5 (con listas y tuplas).
T
Tipos Compuestos
Los tipos de dato que agrupan colecciones enteras en vez de un solo valor: las cajas grandes, las tarimas, los contenedores donde caben varios artículos juntos. Python trae cuatro (lista, diccionario, conjunto y tupla) y, salvo la tupla, todos son mutables. Primero aparece en el Cap. 4; se explica a fondo en el Cap. 5.
Tipos Primitivos
Los tipos de dato más simples de Python, los átomos del Almacén Digital: cada uno guarda un único valor y no se descompone en partes más chicas. El libro trabaja con cinco: int, float, str, bool y NoneType (el vacío, None). Primero aparece en el Cap. 4.
Traceback
El parte de accidente que Python imprime cuando una excepción no fue atrapada. Se lee de abajo hacia arriba: la última línea dice el tipo de error y su mensaje; las anteriores, el camino que llevó hasta él. Primero aparece en el Cap. 3; se explica a fondo en el Cap. 10 y se reutiliza en el Cap. 12.
Tupla
Colección ordenada e inmutable (tuple): el estuche sellado. Se lee como una lista pero no se modifica; su uso estrella es el desempaque (x, y = coordenadas). Primero aparece en el Cap. 4; profundiza en el Cap. 5 y se reutiliza en el Cap. 9 (retorno de tuplas).
Type Hint (Anotación de Tipo)
Pista opcional sobre el tipo de un dato: nombre: str, def f(x: int) -> bool. Python no la obliga al ejecutar, pero tu editor la usa para avisarte de errores antes de correr el programa. Primero aparece en el Cap. 4; se reutiliza en el Cap. 9 (al definir funciones).
V
Valor (Value)
Lo que vive dentro de un casillero de un diccionario, el contenido que una clave localiza. A diferencia de una lista, no se accede por posición sino por la clave que lo etiqueta. No confundir con valor por defecto, que es otro concepto. Primero aparece en el Cap. 5.
Valor por Defecto
El valor que un parámetro usa automáticamente cuando quien llama a la función no lo proporciona: def f(a, b=1). Los parámetros con valor por defecto van siempre al final, después de los obligatorios, y nunca debe ser una lista u otro mutable (se comparte entre todas las llamadas). Aparece de forma informal desde el Cap. 5 (.get() de diccionarios) y el Cap. 6 (el truco de and/or); el Cap. 9 lo trata de forma sistemática.
Variable
Nombre simbólico vinculado a un objeto (un valor). Lo que cambia entre ejecuciones es el valor; el nombre es el punto de acceso en el código. Primero aparece en el Cap. 3; se explica a fondo en el Cap. 4 y se reutiliza en el Cap. 9 (variables locales y globales).
venv (Entorno Virtual)
Copia aislada de Python dentro de una carpeta del proyecto (.venv). Lo que se instala adentro no contamina el sistema ni otros proyectos. Se crea con python3 -m venv .venv (py -m venv en Windows) y se activa por sesión de terminal. Primero aparece en el Cap. 2; se reutiliza en el Cap. 11 y el Cap. 12.