Bienvenido al curso de Programación en Python. En esta primera lección descubrirás qué es Python, de dónde viene, qué lo hace especial frente a otros lenguajes y en qué ámbitos se utiliza hoy en día. También escribirás (o al menos leerás y entenderás) tu primera línea de código, y conocerás el proyecto que nos acompañará durante todo el curso: Papyrus, una librería de barrio que quiere digitalizar su gestión. Entender el contexto y la filosofía del lenguaje antes de escribir código te ayudará a tomar mejores decisiones más adelante, cuando el código se complique.
Contenido
- ¿Qué es Python?
- Breve historia del lenguaje
- Características principales
- ¿Para qué se usa Python en el mundo real?
- Ventajas y desventajas
- Tu primera línea de código:
print() - El proyecto del curso: la librería Papyrus
¿Qué es Python?
Python es un lenguaje de programación de propósito general: sirve para escribir desde pequeños scripts de unas pocas líneas hasta grandes aplicaciones web, herramientas de análisis de datos o sistemas de inteligencia artificial.
Sus señas de identidad son:
- Legibilidad: el código Python se parece bastante al inglés escrito. Se diseñó para que leerlo fuera casi tan fácil como leer pseudocódigo.
- Simplicidad: puedes conseguir mucho con poco código. Tareas que en otros lenguajes requieren 20 líneas, en Python a menudo se resuelven en 3 o 4.
- Comunidad enorme: hay millones de programadores usando Python, lo que significa documentación abundante, tutoriales, y librerías ya escritas para casi cualquier cosa.
Para hacerte una idea de esa legibilidad, observa este fragmento (no te preocupes por entenderlo del todo todavía; lo estudiaremos pieza a pieza en las próximas lecciones):
libros = ["El Quijote", "La Odisea", "Hamlet"]
for libro in libros:
print("Papyrus tiene en stock:", libro)Aunque nunca hayas programado, probablemente intuyes lo que hace: para cada libro de la lista, muestra un mensaje. Esa intuición inmediata es exactamente lo que persigue Python.
Breve historia del lenguaje
- 1989-1991: Guido van Rossum, un programador neerlandés, crea Python durante sus vacaciones de Navidad como un proyecto personal. El nombre no viene de la serpiente, sino del grupo de humor británico Monty Python.
- 1994: se publica Python 1.0.
- 2000: llega Python 2.0, que populariza el lenguaje.
- 2008: aparece Python 3.0, una versión que corrige defectos de diseño pero que no es compatible con Python 2. Durante años convivieron ambas ramas.
- 2020: Python 2 deja de recibir soporte oficialmente. Hoy, todo el desarrollo nuevo se hace en Python 3, y es la versión que usaremos en este curso.
- Actualidad: Python encabeza de forma sostenida los índices de popularidad de lenguajes (como TIOBE o el ranking de IEEE), impulsado sobre todo por la ciencia de datos y la inteligencia artificial.
Importante: si en algún tutorial antiguo ves código como
print "Hola"(sin paréntesis), es Python 2. Ignóralo: en Python 3 eso da error.
Características principales
Vamos a desgranar tres términos que verás constantemente al hablar de Python. Son conceptos técnicos, pero merece la pena entenderlos desde el principio.
Python es interpretado
Un ordenador solo entiende instrucciones en código máquina (unos y ceros). Hay dos grandes estrategias para traducir un lenguaje de programación a ese código máquina:
| Estrategia | Cómo funciona | Ejemplos |
|---|---|---|
| Compilado | Un programa (el compilador) traduce todo el código de golpe a un ejecutable antes de poder usarlo. | C, C++, Go, Rust |
| Interpretado | Un programa (el intérprete) lee el código y lo va ejecutando línea a línea sobre la marcha. | Python, JavaScript, Ruby |
Que Python sea interpretado tiene consecuencias prácticas:
- Ciclo de trabajo rápido: escribes, ejecutas y ves el resultado al instante, sin paso de compilación.
- Portabilidad: el mismo fichero
.pyfunciona en Windows, macOS o Linux, siempre que haya un intérprete de Python instalado. - Menor velocidad de ejecución: al traducir sobre la marcha, un programa Python suele ser más lento que su equivalente en C. Para la mayoría de aplicaciones (y desde luego para la gestión de una librería como Papyrus) esa diferencia es irrelevante.
flowchart LR
A["Código fuente\n(archivo .py)"] --> B["Intérprete de Python"]
B --> C["Ejecución línea a línea\n(resultado inmediato)"]
Python es multiparadigma
Un paradigma de programación es un estilo o forma de organizar el código. Python no te obliga a usar uno concreto; soporta varios:
| Paradigma | Idea central | ¿Dónde lo verás en este curso? |
|---|---|---|
| Imperativo/procedimental | Instrucciones paso a paso, agrupadas en funciones. | Módulos 1 a 4 |
| Orientado a objetos | El código se organiza en clases y objetos que combinan datos y comportamiento. | Módulo 5 |
| Funcional | Se trabaja con funciones que transforman datos, evitando modificar estado. | Funciones lambda (módulo 3), comprensiones (módulo 2) |
Esto es una ventaja para el aprendizaje: empezarás escribiendo scripts sencillos paso a paso, y solo cuando lo necesites darás el salto a técnicas más avanzadas.
Python tiene tipado dinámico
En programación, el tipo de un dato indica qué clase de valor es: un número entero, un texto, un valor verdadero/falso... En algunos lenguajes (tipado estático) debes declarar el tipo de cada variable de antemano y este no puede cambiar. En Python (tipado dinámico) no hace falta:
precio = 18 # ahora contiene un número entero
precio = "dieciocho" # ...y ahora un texto, sin que Python proteste- Ventaja: escribes menos y el código es más flexible.
- Riesgo: algunos errores de tipo solo se descubren al ejecutar el programa, no antes. (En el módulo 8 verás las anotaciones de tipos, que ayudan a mitigar esto.)
Conviene aclarar que Python es dinámico pero fuertemente tipado: no mezcla tipos a la ligera. Por ejemplo, sumar un número y un texto (3 + "libros") produce un error en lugar de un resultado sorprendente.
¿Para qué se usa Python en el mundo real?
Python está prácticamente en todas partes. Algunos ámbitos destacados:
- Ciencia de datos e inteligencia artificial: es el lenguaje dominante. Librerías como NumPy, Pandas o scikit-learn (módulo 11) lo han convertido en el estándar de facto.
- Desarrollo web: frameworks como Flask y Django (módulo 10) mueven sitios como Instagram o Pinterest.
- Automatización y scripting: renombrar mil archivos, generar informes, enviar correos automáticos... Python es la navaja suiza de la automatización de tareas.
- Educación: por su sencillez, es el lenguaje de introducción a la programación en muchas universidades.
- Aplicaciones de escritorio, videojuegos, sistemas embebidos: menos habitual, pero también posible.
Empresas como Google, Netflix, Spotify o la NASA usan Python a diario en producción.
Ventajas y desventajas
Ningún lenguaje es perfecto. Un buen profesional conoce las fortalezas y limitaciones de su herramienta:
| Ventajas | Desventajas |
|---|---|
| Sintaxis clara y fácil de aprender | Más lento que lenguajes compilados (C, C++, Rust) |
| Enorme ecosistema de librerías para casi todo | Elevado consumo de memoria en comparación con lenguajes de bajo nivel |
| Comunidad gigante: documentación y ayuda abundantes | Poco habitual en desarrollo móvil nativo |
| Multiplataforma (Windows, macOS, Linux) | El tipado dinámico puede ocultar errores hasta la ejecución |
| Productividad alta: prototipos en horas, no semanas | Limitaciones históricas de paralelismo (lo matizaremos en el módulo 8) |
Para nuestro objetivo —aprender a programar y construir un sistema de gestión para una librería— las desventajas apenas pesan, y las ventajas son decisivas.
Tu primera línea de código: print()
La tradición manda que el primer programa en cualquier lenguaje muestre un saludo por pantalla. En Python, mostrar algo por pantalla se hace con la función print():
Analicemos esta línea pieza a pieza:
printes el nombre de una función: una orden con nombre que Python ya trae incorporada. Su trabajo es mostrar por pantalla lo que le pases.- Los paréntesis
( )indican que estamos llamando (ejecutando) a la función, y dentro de ellos ponemos lo que queremos que muestre. "¡Hola, mundo!"es una cadena de texto: un texto literal delimitado por comillas. Las comillas le dicen a Python "esto es texto, no una orden".
El resultado en pantalla sería:
Fíjate en que las comillas no aparecen en la salida: solo sirven para delimitar el texto en el código.
Podemos ir un paso más allá y saludar desde nuestro proyecto:
Cada llamada a print() escribe su contenido y salta a la línea siguiente. En la próxima lección instalarás Python y podrás ejecutar esto tú mismo; de momento, basta con que entiendas la mecánica.
El proyecto del curso: la librería Papyrus
A lo largo de todo el curso vamos a acompañar a Papyrus, una pequeña librería de barrio regentada por Ana, su propietaria. Ana lleva años gestionando el negocio con libretas y hojas sueltas: el inventario, los precios, los pedidos de clientes habituales como Luis... y ha decidido dar el salto digital.
Tu misión como estudiante será construir, poco a poco, el sistema de gestión de Papyrus. El plan, a grandes rasgos:
- Ahora (módulo 1): representar los primeros datos de la tienda —nombre, títulos de libros, precios— y mostrar información por pantalla.
- Módulos 2-4: tomar decisiones (¿hay stock?), repetir operaciones (recorrer el catálogo) y organizar los datos en estructuras adecuadas.
- Módulos 5-7: modelar libros y clientes como objetos, guardar los datos en archivos y hacer el programa robusto frente a errores.
- Módulos 8-11: técnicas avanzadas, pruebas automatizadas, una web para la tienda y análisis de sus datos de ventas.
- Módulo 12: el proyecto final integrará todo lo aprendido.
Empezar cada concepto nuevo con un ejemplo de Papyrus te dará contexto: no aprenderás "qué es una lista" en abstracto, sino "cómo guardo el catálogo de la tienda". Los datos que usaremos serán siempre ficticios: libros clásicos de dominio público (La Odisea, El Quijote, Hamlet...) o títulos inventados, y personas ficticias como Ana o Luis.
Errores Comunes y Consejos
- Estudiar con material de Python 2: si ves
print "Hola"sin paréntesis, o menciones araw_input(), ese material está obsoleto. Busca siempre recursos de Python 3. - Confundir "interpretado" con "no profesional": que Python sea interpretado no lo hace un lenguaje de juguete. Sistemas críticos de empresas enormes funcionan con Python.
- Olvidar las comillas en
print():print(Hola)sin comillas provoca un error (NameError), porque Python busca una variable llamadaHolaen lugar de tratar el texto literalmente. El texto siempre va entre comillas. - Querer correr antes de andar: es tentador saltar directamente a la inteligencia artificial o al desarrollo web. Resiste: los fundamentos de los módulos 1 a 7 son los cimientos de todo lo demás.
- Consejo: acostúmbrate desde ya a leer código en voz alta. "Imprime la cadena Bienvenido a Papyrus" — si puedes narrar lo que hace cada línea, la entiendes de verdad.
Ejercicios
Todavía no has instalado Python (eso llega en la siguiente lección), así que estos ejercicios son de comprensión y de "programar sobre papel". Escribe las respuestas antes de mirar las soluciones.
Ejercicio 1
Clasifica cada afirmación como verdadera o falsa:
- Python necesita un paso de compilación previo para poder ejecutar un programa.
- En Python, una variable puede contener primero un número y después un texto.
- Python 2 es la versión recomendada para nuevos proyectos.
- Python solo permite programar con orientación a objetos.
Ejercicio 2
Escribe (en papel o en un editor de texto cualquiera) las líneas de código necesarias para que un programa muestre exactamente esta salida:
Ejercicio 3
Observa esta línea y explica qué hace cada una de sus tres partes (nombre, paréntesis, contenido):
Soluciones
Solución 1
- Falsa. Python es interpretado: el intérprete ejecuta el código línea a línea sin generar antes un ejecutable.
- Verdadera. Es el tipado dinámico: el tipo va asociado al valor, no a la variable.
- Falsa. Python 2 dejó de tener soporte en 2020; todo desarrollo nuevo usa Python 3.
- Falsa. Python es multiparadigma: procedimental, orientado a objetos y funcional.
Solución 2
Cada print() genera una línea de salida. El texto va siempre entre comillas, y estas no aparecen en pantalla.
Solución 3
print— el nombre de la función incorporada que muestra texto por pantalla.(...)— los paréntesis ejecutan (llaman a) la función; dentro va lo que debe mostrar."El Quijote cuesta 15.90 euros"— una cadena de texto: el contenido literal que se mostrará, delimitado por comillas.
Conclusión
En esta lección has situado Python en el mapa: un lenguaje interpretado, multiparadigma y de tipado dinámico, nacido en 1991 y hoy omnipresente en ciencia de datos, web y automatización. Has visto sus ventajas (legibilidad, productividad, ecosistema) y sus límites (velocidad), has entendido tu primera instrucción —print()— y has conocido a Ana y su librería Papyrus, el proyecto que iremos construyendo juntos.
En la próxima lección, Configuración del Entorno de Desarrollo, instalarás Python en tu ordenador, probarás el intérprete interactivo y prepararás un editor profesional para poder ejecutar tú mismo todo el código del curso.
Curso de Programación en Python
Módulo 1: Introducción a Python
- Introducción a Python
- Configuración del Entorno de Desarrollo
- Sintaxis de Python y Tipos de Datos Básicos
- Variables y Constantes
- Entrada y Salida Básica
- Entornos Virtuales y Gestión de Paquetes
Módulo 2: Estructuras de Control
- Sentencias Condicionales
- Bucles: for y while
- Herramientas de Control de Flujo
- Comprensiones de Listas
Módulo 3: Funciones y Módulos
- Definición de Funciones
- Argumentos de Función
- Funciones Lambda
- Módulos y Paquetes
- Visión General de la Biblioteca Estándar
Módulo 4: Estructuras de Datos
Módulo 5: Programación Orientada a Objetos
Módulo 6: Manejo de Archivos
- Lectura y Escritura de Archivos
- Trabajo con Archivos CSV
- Manejo de Datos JSON
- Operaciones con Archivos y Directorios
Módulo 7: Manejo de Errores y Excepciones
- Introducción a las Excepciones
- Manejo de Excepciones
- Lanzamiento de Excepciones
- Excepciones Personalizadas
- Buenas Prácticas y Registro de Errores con logging
Módulo 8: Temas Avanzados
- Anotaciones de Tipos (type hints)
- Decoradores
- Generadores
- Administradores de Contexto
- Concurrencia: Hilos y Procesos
- Asyncio para Programación Asíncrona
Módulo 9: Pruebas y Depuración
- Introducción a las Pruebas
- Pruebas Unitarias con unittest
- Pruebas con pytest
- Desarrollo Guiado por Pruebas
- Técnicas de Depuración
- Uso de pdb para Depuración
Módulo 10: Desarrollo Web con Python
- Introducción al Desarrollo Web
- Fundamentos del Framework Flask
- Construcción de APIs REST con Flask
- Introducción a Django
- Construcción de Aplicaciones Web con Django
Módulo 11: Ciencia de Datos con Python
- Introducción a la Ciencia de Datos
- NumPy para Computación Numérica
- Pandas para Manipulación de Datos
- Matplotlib para Visualización de Datos
- Introducción al Aprendizaje Automático con scikit-learn
