Curso Maestro de Python
Bienvenido a Pizarra Solidaria. Este curso está diseñado para llevarte desde cero absoluto hasta conceptos avanzados con ejemplos prácticos y fáciles de entender.
0. Antes de Empezar: ¿Qué es y cómo funciona?
¿Qué puedo hacer con Python?
Python es el "cuchillo suizo" de la programación. Es famoso porque se lee casi como inglés. Se utiliza principalmente en:
- 🧠 Inteligencia Artificial: ChatGPT y la mayoría de IAs están construidas con Python.
- 📊 Ciencia de Datos: Analizar millones de datos de Excel en segundos.
- 🌐 Desarrollo Web: Crear servidores y páginas web (backend) con Django o Flask.
- 🤖 Automatización: Crear "bots" que envíen emails, descarguen archivos o muevan el ratón por ti.
¿Cómo instalo Python? (Guía Rápida)
Para que tu ordenador entienda este lenguaje, necesitas instalar el "intérprete".
- Ve a python.org y descarga la última versión.
- MUY IMPORTANTE: Al instalar, marca la casilla que dice "Add Python to PATH".
- Descarga un editor de código. El mejor es VS Code (Visual Studio Code).
1. Introducción: Tu primer código
Python es un lenguaje legible y potente. Antes de complicarnos, vamos a hacer que el ordenador nos hable.
print() es la forma de mostrar información en la pantalla.
print("Hola, mundo desde Pizarra Solidaria!")
print("Me encanta aprender Python")
2. Variables y Tipos de Datos
Las variables son como cajas donde guardamos información. En Python, no necesitas decir de qué tipo es la caja, él lo adivina.
Tipos principales:
- String (str): Texto.
- Integer (int): Números enteros.
- Float (float): Números con decimales.
- Boolean (bool): Verdadero o Falso.
# Definición de variables
nombre = "Ana" # String
edad = 25 # Int
altura = 1.68 # Float
es_estudiante = True # Bool
# Imprimir usando 'f-strings' (formato moderno)
print(f"Nombre: {nombre}, Edad: {edad}")
print(f"¿Es estudiante?: {es_estudiante}")
3. Control de Flujo: Tomando Decisiones
Los programas necesitan tomar caminos diferentes según los datos. Para esto usamos if (si), elif (si no, pero si...) y else (si no).
Condicionales
nota = 85
if nota >= 90:
print("¡Sobresaliente!")
elif nota >= 70:
print("Aprobado notable")
else:
print("Necesitas estudiar más")
Bucles (Loops)
Los bucles nos permiten repetir tareas sin copiar y pegar código.
for para generar la tabla del 5.
print("--- Tabla del 5 ---")
for numero in range(1, 11):
resultado = 5 * numero
print(f"5 x {numero} = {resultado}")
4. Estructuras de Datos
Para guardar muchos datos a la vez, usamos Listas y Diccionarios.
Listas (Lists)
Son ordenadas y se pueden modificar. Se usan corchetes [].
frutas = ["Manzana", "Banana", "Cereza"]
# Añadir una fruta
frutas.append("Durazno")
# Acceder a la primera (índice 0)
print(frutas[0])
Diccionarios (Dictionaries)
Funcionan con Clave: Valor. Son ideales para guardar datos estructurados.
coche = {
"marca": "Toyota",
"modelo": "Corolla",
"año": 2020
}
print(coche["marca"]) # Imprime: Toyota
5. Funciones: Reutilizando Código
Una función es un bloque de código que solo se ejecuta cuando lo llamas. Ayuda a no repetirnos.
def calcular_precio_final(precio, descuento):
ahorro = precio * (descuento / 100)
precio_final = precio - ahorro
return precio_final
# Usando la función
precio_camisa = calcular_precio_final(50, 20)
print(f"Precio con descuento: ${precio_camisa}")
6. Programación Orientada a Objetos (POO)
Aquí es donde Python se vuelve poderoso. Creamos "Clases" que son plantillas para crear objetos.
class Perro:
def __init__(self, nombre, raza):
self.nombre = nombre
self.raza = raza
def ladrar(self):
return "¡Guau!"
# Crear un objeto (Instancia)
mi_perro = Perro("Rex", "Pastor Alemán")
print(f"{mi_perro.nombre} dice: {mi_perro.ladrar()}")
7. Manejo de Errores (Excepciones)
Los programas fallan. Un programador experto no evita que fallen, sino que controla qué pasa cuando fallan para que el programa no se "rompa" por completo.
try) ejecutar un código. Si falla, captura la excepción (except) en lugar de detener el programa.
try:
numero = int(input("Introduce un número para dividir 100: "))
resultado = 100 / numero
print(f"El resultado es: {resultado}")
except ZeroDivisionError:
# Esto se ejecuta si el usuario pone 0
print("¡Error! No puedes dividir por cero.")
except ValueError:
# Esto se ejecuta si el usuario escribe letras en vez de números
print("¡Error! Debes introducir un número válido.")
finally:
print("Operación finalizada (esto se imprime siempre).")
8. Python Avanzado: Escribiendo como un Pro
Python permite hacer mucho con muy poco código. Aquí veremos las List Comprehensions (Listas comprimidas).
Versión Clásica vs Versión Pro
Objetivo: Crear una lista con los cuadrados de los números del 0 al 9.
# Método Principiante (3 líneas)
cuadrados = []
for x in range(10):
cuadrados.append(x**2)
# Método Experto (List Comprehension - 1 línea)
cuadrados_pro = [x**2 for x in range(10)]
print(cuadrados_pro)
Funciones Lambda
Son funciones pequeñas y anónimas que se escriben en una sola línea.
# Función tradicional
def sumar(a, b):
return a + b
# Función Lambda equivalente
sumar_lambda = lambda a, b: a + b
print(sumar_lambda(5, 3)) # Imprime 8
9. Manejo de Archivos (I/O)
Un programa real necesita guardar información para que no se pierda al apagar el ordenador. Vamos a crear, escribir y leer archivos de texto.
with asegura que el archivo se cierre correctamente, incluso si ocurre un error mientras escribes.
Escribir en un archivo
with open("notas_solidarias.txt", "w") as archivo:
archivo.write("Curso de Python en Pizarra Solidaria\n")
archivo.write("Aprendiendo a guardar datos persistentes.")
print("Archivo creado exitosamente.")
Leer un archivo
with open("notas_solidarias.txt", "r") as archivo:
contenido = archivo.read()
print("--- Contenido del archivo ---")
print(contenido)
10. Librerías Esenciales y Cierre
La filosofía de Python es "baterías incluidas". Significa que viene con muchas herramientas listas para usar.
Módulo Random (Aleatoriedad)
import random
# Simular el lanzamiento de un dado
dado = random.randint(1, 6)
print(f"Has sacado un: {dado}")
# Elegir un ganador de una lista
alumnos = ["Maria", "Juan", "Lucia", "Pedro"]
ganador = random.choice(alumnos)
print(f"El ganador del sorteo es: {ganador}")
Módulo Datetime (Fechas)
import datetime
ahora = datetime.datetime.now()
print(f"Fecha y hora actual: {ahora}")
print(f"Año actual: {ahora.year}")
🎓 ¡Felicidades! Has completado el curso.
Has pasado de imprimir un simple mensaje a manejar archivos, errores y objetos. Este es el comienzo de tu carrera como programador.
Siguientes pasos sugeridos:
- Aprender Pandas para análisis de datos.
- Aprender Django/Flask para crear webs.
- Automatizar tareas repetitivas en tu ordenador.
📚 Glosario y Dónde seguir aprendiendo
El camino del experto nunca termina. Aquí tienes las mejores fuentes gratuitas para consultar dudas:
| Recurso | Descripción | Idioma |
|---|---|---|
| Documentación Oficial | La "Biblia" de Python. Técnica pero exacta. (docs.python.org) | Inglés/Español |
| Stack Overflow | El foro donde los programadores resuelven dudas. Si tienes un error, alguien ya lo tuvo aquí. | Inglés |
| Real Python | Tutoriales escritos de muy alta calidad y profundidad. | Inglés |
| W3Schools | Ideal para consultas rápidas de sintaxis básica. | Español |
🎓 ¿Dominaste lo básico?
Es hora de pasar al siguiente nivel y aprender sobre Arquitectura, Asincronía y Decoradores.
Ir al Curso Avanzado ➡