Curso de Python
1. ¿Qué es Python?
Python es un lenguaje de programación multipropósito: sirve para aplicaciones de escritorio, desarrollo web, análisis de datos, inteligencia artificial, automatización de tareas… Es moderno, muy legible y está considerado el mejor lenguaje para empezar a programar.
¿Por qué aprender Python?
- Sintaxis sencilla: se lee casi como si fuera inglés, con muy poca «ceremonia».
- Muy demandado: es de los lenguajes más usados del mundo.
- Enorme comunidad: miles de librerías listas para usar.
- Versátil: lo mismo te vale para una web que para analizar datos.
Un lenguaje interpretado
A diferencia de otros lenguajes, Python no necesita compilarse. Un programa llamado intérprete lee tu código línea a línea y lo ejecuta al momento. Por eso puedes probar cosas rápidamente y ver el resultado enseguida.
La indentación importa
Esta es la gran diferencia de Python frente a otros lenguajes: los espacios al principio de la línea forman parte de la sintaxis. Donde otros lenguajes usan llaves para agrupar el código, Python usa la sangría. Lo veremos en cuanto lleguemos a los condicionales.
El framework más famoso para desarrollo web con Python es Django.
2. Instalación y herramientas
Para programar en Python necesitas dos cosas: el intérprete de Python y un editor de código.
Instalar Python
Se descarga desde python.org/downloads. Durante la instalación en Windows es imprescindible marcar la casilla «Add Python to PATH»; si no, el sistema no encontrará Python desde la terminal.
Para comprobar que ha ido bien, abre una terminal y escribe:
python --version
Debería responderte con el número de versión instalada. En macOS y Linux quizá tengas que usar python3.
Herramientas útiles
- Visual Studio Code → editor gratuito y ligero. Es el que usaremos en clase.
- PyCharm → entorno completo, más pesado pero muy potente.
- Jupyter Notebook → ideal para análisis de datos: mezcla código, resultados y texto.
- Google Colab → como Jupyter pero en el navegador, sin instalar nada.
- Anaconda → una distribución que trae Python y las librerías de datos ya preparadas.
Si estás empezando, la combinación recomendada es Python + Visual Studio Code con la extensión oficial de Python.
Más detalles en la guía de instalación.
3. Tu primer programa
La tradición manda: el primer programa de cualquier lenguaje muestra un saludo por pantalla. En Python es así de corto:
print("Hola Mundo")
Hola Mundo
Una sola línea. En otros lenguajes esto mismo necesita definir una clase y un método principal. Aquí, print() es la función que muestra por pantalla lo que le pongas entre paréntesis.
Cómo ejecutarlo
- Crea un archivo con extensión
.py, por ejemplohola.py. - Escribe dentro la línea anterior y guarda.
- Abre la terminal en esa carpeta y ejecuta:
python hola.py
En Visual Studio Code puedes ejecutarlo directamente con el botón ▶ de la esquina superior derecha.
Comentarios
Todo lo que va detrás de una almohadilla es un comentario: Python lo ignora, sirve para explicar el código.
# Esto es un comentario
print("Hola Mundo") # también puede ir al final de una línea
4. Variables y tipos de datos
Una variable es un nombre que guarda un valor para poder usarlo después. En Python se crean simplemente asignando con el signo igual, sin declarar el tipo:
nombre = "Ana"
edad = 25
altura = 1.68
es_estudiante = True
Los tipos básicos
str→ cadenas de texto, entre comillas:"Hola".int→ números enteros:25,-4.float→ números decimales:1.68(con punto, no con coma).bool→ valores lógicos:TrueoFalse(en mayúscula la primera letra).
Python deduce el tipo solo. Puedes comprobarlo con la función type():
print(type(edad)) # <class 'int'>
print(type(altura)) # <class 'float'>
Reglas para los nombres
- Pueden llevar letras, números y guion bajo, pero no empezar por número.
- Distinguen mayúsculas:
edadyEdadson variables distintas. - Por convención se escriben en minúscula y separando palabras con guion bajo:
fecha_nacimiento. - Usa nombres descriptivos:
precio_totales mucho mejor quept.
Convertir entre tipos
Se puede transformar un tipo en otro con int(), float() y str(). Esto es fundamental al leer datos del usuario, como veremos ahora:
numero_texto = "42"
numero = int(numero_texto) # ahora es un entero
print(numero + 8) # 50
5. Entrada y salida
Ya conoces print() para mostrar información. Para pedirla al usuario se usa input():
nombre = input("¿Cómo te llamas? ")
print("Encantado,", nombre)
¿Cómo te llamas? Ana
Encantado, Ana
Cuidado: input() siempre devuelve texto
Este es el error más habitual al empezar. Aunque el usuario escriba un número, input() lo entrega como cadena de texto. Si intentas sumar, Python concatenará en vez de calcular:
edad = input("Tu edad: ") # el usuario escribe 25
print(edad + 5) # ERROR: no se puede sumar texto y número
La solución es convertirlo con int():
edad = int(input("Tu edad: "))
print("El año que viene tendrás", edad + 1)
Dar formato a la salida: los f-strings
La forma moderna y más cómoda de componer textos es poner una f delante de las comillas e insertar variables entre llaves:
nombre = "Ana"
edad = 25
print(f"{nombre} tiene {edad} años")
Ana tiene 25 años
6. Operadores
Los operadores permiten hacer cálculos y comparaciones.
Aritméticos
+suma,-resta,*multiplicación,/división.//división entera (descarta los decimales):7 // 2es3.%módulo (el resto de la división):7 % 2es1.**potencia:2 ** 3es8.
El módulo es más útil de lo que parece: sirve para saber si un número es par, ya que numero % 2 == 0 solo se cumple en los pares.
De comparación
Devuelven siempre True o False:
==igual que — ojo, dos iguales; uno solo es asignar.!=distinto de.>,<,>=,<=mayor, menor, mayor o igual, menor o igual.
Lógicos
Python los escribe con palabras, lo que hace el código muy legible:
and→ se cumplen las dos condiciones.or→ se cumple al menos una.not→ invierte el resultado.
edad = 20
tiene_carnet = True
if edad >= 18 and tiene_carnet:
print("Puede conducir")
De asignación
Atajos para modificar una variable con su propio valor:
contador = 0
contador += 1 # equivale a: contador = contador + 1
contador -= 2 # resta
contador *= 3 # multiplica
7. Cadenas de texto
Contenido en preparación. Incluirá concatenación, métodos útiles y slicing.
8. Listas, tuplas y diccionarios
Contenido en preparación.
Mientras tanto tienes disponibles las páginas de listas y tuplas, listas y diccionarios.
9. Condicionales
Contenido en preparación. Incluirá if, elif, else y la importancia de la indentación.
10. Bucles
Contenido en preparación. Incluirá while, for, range(), break y continue.
11. Funciones
Contenido en preparación.
12. Módulos y paquetes
Contenido en preparación. Incluirá import, módulos estándar y pip.
13. Ficheros
Contenido en preparación.
14. Excepciones
Contenido en preparación.
15. Programación orientada a objetos
Contenido en preparación.
16. Ejercicios y proyectos
Todo el código de esta sección está disponible para descargar y ejecutar. Ábrelo con tu editor y experimenta modificándolo.
Ejercicios básicos
Ejercicios de práctica
- Entrada y salida: edad, edad mejorado, triángulo
- Menús: menú de opciones
- Recursividad: cuenta atrás, factorial
- El ahorcado: versión guiada, versión propia
Proyectos
- El ahorcado → juego completo con ahorcado.py, palabras.py y diagramas.py. Buen ejemplo de cómo repartir un programa en varios ficheros.
- Invasión alienígena → videojuego con Pygame: alien_invasion.py, ship.py, alien.py, bullet.py. Es el proyecto más avanzado: usa clases y programación orientada a objetos.
- Historias locas → historiasLocas.py. Genera relatos con las palabras que introduce el usuario. Ideal para practicar cadenas.
- El número mágico → adivina el número pensado por el ordenador. Perfecto para practicar bucles y condicionales.
- Piedra, papel o tijera → clásico juego por consola con el módulo
random.
Otros ejemplos
En la carpeta de ejercicios hay también material más avanzado que puedes explorar: snake, sudoku, el tiempo, red neuronal (grados Celsius) y perceptrón.