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:

¿Cómo instalo Python? (Guía Rápida)

Para que tu ordenador entienda este lenguaje, necesitas instalar el "intérprete".

🚀 Opción A: Instalación en tu PC (Recomendada)
  1. Ve a python.org y descarga la última versión.
  2. MUY IMPORTANTE: Al instalar, marca la casilla que dice "Add Python to PATH".
  3. Descarga un editor de código. El mejor es VS Code (Visual Studio Code).
☁️ Opción B: Sin instalar nada (Online) Si no quieres instalar nada todavía, puedes programar directamente en el navegador usando Replit.com o Google Colab.

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.

📝 Concepto Clave: print() La función 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:

🛠 Ejemplo Práctico: Ficha de Personaje Vamos a crear variables para describir a una persona.
# 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.

🛠 Ejemplo Práctico: Tabla de multiplicar Usaremos un bucle 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.

🛠 Ejemplo Práctico: Calculadora de Descuentos Crearemos una función que calcule el precio final.
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.

🛡 Concepto Clave: Try / Except Intenta (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.

📝 Concepto Clave: Context Managers (with) Usar 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 ➡