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")
Resultado en la consola
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

  1. Crea un archivo con extensión .py, por ejemplo hola.py.
  2. Escribe dentro la línea anterior y guarda.
  3. 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: True o False (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: edad y Edad son variables distintas.
  • Por convención se escriben en minúscula y separando palabras con guion bajo: fecha_nacimiento.
  • Usa nombres descriptivos: precio_total es mucho mejor que pt.

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)
Resultado en la consola
¿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")
Resultado en la consola
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 // 2 es 3.
  • % módulo (el resto de la división): 7 % 2 es 1.
  • ** potencia: 2 ** 3 es 8.

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

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 locashistoriasLocas.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.

Enlaces útiles