Saltar a contenido

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_ia
cd hola_ia
uv init --python 3.14
  • mkdir hola_ia crea la carpeta (make directory).
  • cd hola_ia entra en ella (change directory). A partir de aquí, todo lo que escribas en esta terminal se ejecuta dentro de hola_ia.
  • uv init --python 3.14 crea los ficheros del proyecto e indica que usa Python 3.14.

Salida esperada:

Initialized project `hola-ia`

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:

hola_ia/
├── .git/
├── .gitignore
├── .python-version
├── README.md
├── main.py
└── pyproject.toml

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:

def main():
    print("Hello from hola-ia!")


if __name__ == "__main__":
    main()

Ejecútalo desde la terminal integrada:

uv run main.py

Salida esperada:

Using CPython 3.14.3
Creating virtual environment at: .venv
Hello from hola-ia!

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:

# hola.py
print("Hola, IA")

La primera línea empieza por #: es un comentario, texto para las personas que Python ignora. Guarda el fichero (Ctrl+S) y ejecútalo:

uv run python hola.py

Salida esperada:

Hola, IA

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):

>>> 2 + 2
4
>>> print("hola desde el REPL")
hola desde el REPL

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.py en lugar de uv run python hola.py: puede ejecutarse con otro Python, o fallar con python: command not found.
  • Olvidar cd hola_ia antes de uv run: uv no encuentra el proyecto, o el script, y falla con No such file or directory.
  • Ejecutar uv init dentro de una carpeta que ya es un proyecto: uv se 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 con exit().

Práctica de transferencia

  1. En el proyecto hola_ia, modifica main() en main.py para que defina nombre = "TuNombre" (con tu nombre) y muestre print(f"Hola, {nombre}. Te damos la bienvenida al curso."). La f delante de las comillas permite insertar el valor de nombre dentro del texto; la verás en detalle en 1.2.
  2. Ejecútalo con uv run main.py y comprueba que aparece tu nombre.
  3. Abre el REPL (uv run python), escribe 2 ** 10 y anota el resultado. Después sal con exit().
  4. 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.