1.1 · Introducción y entorno¶
Objetivos. Al terminar este capítulo podrás: explicar qué es Python y por qué
es el lenguaje de referencia en IA, ejecutar un primer programa, usar el
intérprete interactivo (REPL) y crear la estructura mínima de un proyecto con
uv.
Evidencia de logro. Un proyecto gestionado con uv cuyo main.py saluda
por tu nombre y se ejecuta desde la terminal integrada de VS Code.
Contexto y motivación¶
Python es uno de los lenguajes más utilizados en inteligencia artificial. Muchas librerías de ML (NumPy, Pandas, scikit-learn, PyTorch…) se usan desde Python, y las APIs de modelos (OpenAI, entre otras) ofrecen clientes para este lenguaje. En este módulo lo utilizaremos con un enfoque práctico: escribirás scripts, organizarás proyectos, crearás APIs y construirás aplicaciones.
Antes de escribir lógica compleja, conviene entender dos cuestiones básicas: cómo se ejecuta Python (como script o en el intérprete) y cómo se organiza un proyecto.
Vocabulario¶
| Término | Significado |
|---|---|
| Intérprete | Programa que lee y ejecuta el código Python línea a línea |
| REPL | Read-Eval-Print Loop: el modo interactivo del intérprete (>>>) |
| Script | Fichero .py con código que se ejecuta de principio a fin |
| Proyecto | Carpeta con tu código, su manifiesto (pyproject.toml) y su entorno |
| Entorno virtual | Carpeta .venv con las dependencias aisladas de cada proyecto |
uv |
Gestor de proyectos y dependencias de Python |
Prerrequisitos¶
Tener instalados VS Code y uv. Si no los tienes, sigue las páginas del
sitio: Entorno de trabajo (instalación de uv y primer
proyecto), VS Code y uv. Aquí no repetimos esa
instalación; nos centramos en el primer programa y en la estructura que
genera uv.
1. Crear el proyecto¶
Todo el código del curso vive dentro de un proyecto: una carpeta con tus
ficheros y un manifiesto que dice qué Python y qué librerías necesita. uv crea
esa estructura con un comando. Abre una terminal y escribe estas órdenes de una
en una:
mkdir hola_iacrea la carpeta (make directory).cd hola_iaentra en ella (change directory). A partir de aquí, todo lo que escribas en esta terminal se ejecuta dentro dehola_ia.uv init --python 3.14crea los ficheros del proyecto e indica que usa Python 3.14.
Salida esperada:
Fíjate en el detalle: la carpeta se llama hola_ia, pero el proyecto se llama
hola-ia. uv normaliza el nombre y cambia los guiones bajos por guiones
medios; no es un error.
Ahora abre la carpeta en VS Code (Archivo → Abrir carpeta… y elige
hola_ia, o escribe code . en la terminal) y abre la terminal integrada con
Terminal → Nueva terminal. Desde ahora trabajarás ahí. En el explorador de
VS Code verás esta estructura:
Cada pieza tiene su función:
| Fichero | Para qué sirve |
|---|---|
main.py |
Punto de entrada del programa (el fichero que se ejecuta) |
pyproject.toml |
Manifiesto del proyecto: nombre, versión, Python mínimo y dependencias |
.python-version |
La versión de Python que usa uv para este proyecto (3.14) |
README.md |
Descripción del proyecto para quien lo abra por primera vez |
.gitignore |
Ficheros que no se suben a Git (cachés, .venv…) |
.git/ |
Historial de Git. uv init lo crea si Git está instalado; lo verás en Git y GitHub |
Los ficheros que empiezan por punto son ocultos: el explorador de archivos del sistema puede no mostrarlos, pero VS Code sí.
El pyproject.toml recién creado tiene este aspecto:
[project]
name = "hola-ia"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.14"
dependencies = []
La clave requires-python = ">=3.14" fija el Python del curso, y
dependencies es la lista (de momento vacía) de librerías del proyecto:
cuando hagas uv add pandas, uv la añadirá ahí y la instalará.
2. Ejecutar el programa de ejemplo¶
uv init crea un main.py de ejemplo:
Ejecútalo desde la terminal integrada:
Salida esperada:
Las dos primeras líneas solo aparecen la primera vez: uv localiza Python
3.14 (y lo descarga si no lo encuentra en el equipo) y crea el entorno virtual
.venv. También aparece un fichero nuevo, uv.lock, que guarda las versiones
exactas de las dependencias. Si vuelves a ejecutar la orden, solo verás
Hello from hola-ia!.
| Aparece al ejecutar | Para qué sirve |
|---|---|
.venv/ |
Entorno virtual: el Python y las librerías de este proyecto, aislados del resto del equipo. No se sube a Git |
uv.lock |
Versiones exactas de las dependencias, para que todo el grupo tenga el mismo entorno. Sí se sube a Git |
print() muestra un valor por pantalla. Las líneas
if __name__ == "__main__": son el patrón estándar de Python para indicar qué
se ejecuta al lanzar el fichero; lo verás con calma en el capítulo de módulos.
Por ahora, entiende que main() es la función que arranca el programa.
3. Tu primer script¶
Crea en la misma carpeta un fichero hola.py (en VS Code: Archivo → Nuevo
archivo) con una línea:
La primera línea empieza por #: es un comentario, texto para las personas
que Python ignora. Guarda el fichero (Ctrl+S) y ejecútalo:
Salida esperada:
El prefijo uv run python ejecuta hola.py con el Python del proyecto (el
de .venv), no con cualquier Python que haya en el equipo. Ese matiz importa:
así siempre usas la versión y las librerías correctas. uv run hola.py hace lo
mismo, porque uv reconoce que es un fichero Python.
4. El intérprete (REPL)¶
Python también se puede usar interactivamente, línea a línea, sin guardar
ningún fichero. Escribe uv run python (sin nombre de fichero) y verás el
prompt >>>, que indica que Python espera una orden:
Python 3.14.3 (main, Feb 12 2026, 00:42:54) [Clang 21.1.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 2 + 2
4
>>> print("hola desde el REPL")
hola desde el REPL
>>> exit()
Salida esperada (lo que escribes va detrás de >>>; lo que responde Python,
en la línea siguiente):
La primera línea (versión, fecha y plataforma) varía según tu equipo; no
es parte de lo que escribes. Fíjate en que en el REPL 2 + 2 muestra 4 sin
print: el REPL enseña el valor de cada expresión. En un script, en cambio,
solo se muestra lo que imprimes con print().
El REPL es ideal para probar una idea rápida (¿cuánto es 2 ** 10?, ¿qué
hace esta operación?). Para salir, escribe exit() o pulsa Ctrl+D (en
Windows, Ctrl+Z y después Intro).
Regla práctica: experimenta en el REPL, guarda en un script. El REPL no conserva nada al cerrarlo; el script sí.
5. Ejecutar scripts: la referencia mínima¶
| Comando | Qué hace |
|---|---|
uv run python hola.py |
Ejecuta un script con el Python del proyecto |
uv run hola.py |
Equivalente (uv ya sabe que es Python) |
uv run python |
Abre el REPL del proyecto |
uv sync |
Instala las dependencias declaradas (habitual al clonar de GitHub) |
uv add pandas |
Añade una dependencia al proyecto y la instala |
No repitas la instalación aquí
La instalación de uv, la configuración de VS Code, los cuadernos marimo y
Git/GitHub están desarrolladas en el sitio: Entorno de
trabajo, VS Code, Cuadernos
marimo, Git y GitHub y
uv. Este capítulo es solo el punto de partida del código.
Errores frecuentes¶
- Escribir
python hola.pyen lugar deuv run python hola.py: puede ejecutarse con otro Python, o fallar conpython: command not found. - Olvidar
cd hola_iaantes deuv run:uvno encuentra el proyecto, o el script, y falla conNo such file or directory. - Ejecutar
uv initdentro de una carpeta que ya es un proyecto:uvse niega (Project is already initialized). Crea una carpeta nueva. - Confundir el REPL (línea a línea, no se guarda) con un script (fichero
.py). - Editar el fichero pero no guardarlo antes de ejecutar: se ejecuta la versión anterior. En VS Code, un punto en la pestaña indica cambios sin guardar.
- Escribir código Python en la terminal del sistema (fuera del REPL), o una
orden de terminal dentro del REPL: si ves
>>>, estás en Python; sal conexit().
Práctica de transferencia¶
- En el proyecto
hola_ia, modificamain()enmain.pypara que definanombre = "TuNombre"(con tu nombre) y muestreprint(f"Hola, {nombre}. Te damos la bienvenida al curso."). Lafdelante de las comillas permite insertar el valor denombredentro del texto; la verás en detalle en 1.2. - Ejecútalo con
uv run main.pyy comprueba que aparece tu nombre. - Abre el REPL (
uv run python), escribe2 ** 10y anota el resultado. Después sal conexit(). - Comprueba un error a propósito: en
main.py, borra las comillas de cierre del texto, guarda y ejecuta. Lee la última línea del error (SyntaxError) y anota en qué línea dice que está el problema. Vuelve a dejarlo bien.
Qué debes observar: la primera ejecución crea .venv y uv.lock, y las
siguientes no; 2 ** 10 vale 1024; un error de sintaxis impide que se
ejecute ninguna línea del programa.
Producto evaluable¶
El proyecto hola_ia funcionando, con el main.py modificado y una captura (o
el texto copiado) de la terminal que muestre la ejecución del script y la
sesión de REPL. Añade dos frases: para qué sirve uv run y qué diferencia hay
entre el REPL y un script.
Resumen¶
| Tarea | Comando |
|---|---|
| Ejecutar un script | uv run python hola.py (o uv run hola.py) |
| Abrir el REPL | uv run python (salir con exit()) |
| Crear un proyecto | uv init --python 3.14 |
| Instalar dependencias | uv add pandas · uv sync |
Siguiente: 1.2 · Variables y tipos.