Módulo 1: Fundamentos de Python.
Tema 1: Introducción a Python – Historia y Aplicaciones
Objetivos de aprendizaje:
- Conocer el origen del lenguaje Python.
- Comprender por qué Python es uno de los lenguajes más populares hoy en día.
- Identificar los ámbitos en los que se aplica Python profesionalmente.
- Familiarizarse con los entornos de desarrollo recomendados para el curso.
Contenido teórico:
¿Qué es Python?
Python es un lenguaje de programación de alto nivel, interpretado, multiplataforma y de propósito general. Se caracteriza por su sintaxis simple y legible, lo que lo hace ideal para principiantes y útil en entornos profesionales complejos.
Historia breve de Python:
- Creado por Guido van Rossum en 1989 en los Países Bajos.
- Primera versión oficial: Python 2.0 en el año 2000.
- Python 3.0 (versión actual) lanzado en 2008, con mejoras pero incompatibilidades con Python 2.
- El nombre proviene del grupo humorístico “Monty Python”, no del animal.
¿Por qué aprender Python?
- Fácil de leer y escribir (ideal para principiantes).
- Comunidad enorme, muchos recursos y bibliotecas.
- Usado por grandes empresas: Google, Netflix, Spotify, Meta, NASA…
- Versátil y potente para muchos campos.
Aplicaciones reales de Python:
| Ámbito | Ejemplo de uso | Librerías populares |
|---|---|---|
| Desarrollo web | Sitios, backends (Django, Flask) | Django, Flask |
| Ciencia de datos | Análisis, visualización, machine learning | pandas, numpy, matplotlib, scikit-learn |
| Inteligencia artificial | Redes neuronales, procesamiento del lenguaje natural | TensorFlow, PyTorch |
| Automatización (scripts) | Tareas repetitivas, bots, scraping | selenium, requests, beautifulsoup4 |
| Juegos | Juegos 2D y simulaciones | pygame |
| Ciberseguridad | Análisis de malware, automatización de auditorías | scapy, paramiko |
Requisitos para el curso:
- Tener instalado Python 3.x.
- Usar un entorno simple como:
- IDLE (incluido en Python)
- Visual Studio Code (recomendado)
- Thonny (ideal para principiantes)
Actividades de la sesión:
1. Debate inicial:
¿Por qué crees que aprender a programar es importante hoy en día?
Puede hacerse vía encuesta rápida o discusión por chat/videollamada.
2. Actividad práctica:
Investiga y responde (Google/Wikipedia/OpenAI):
- ¿En qué empresa o proyecto se usa Python?
- ¿Qué ventaja tiene sobre otros lenguajes que conoces o has oído?
3. Instalación guiada de Python y entorno de desarrollo:
- Descargar Python desde python.org
- Probar que funciona (
print("Hola mundo")) - Introducción breve a VSC, Thonny o IDLE.
Tarea para casa:
- Instalar Python y crear tu primer script:
- Guardarlo como
mi_primer_script.py.
Evaluación de la sesión:
- Redacción del informe de investigación.
- Confirmación de instalación y funcionamiento del entorno.
- Script básico creado.
- Participación en el quiz.
Tema 2: Variables y Tipos de Datos
Objetivos de aprendizaje:
- Comprender qué es una variable y cómo se utiliza en Python.
- Conocer los principales tipos de datos: numéricos, cadenas, booleanos, listas y diccionarios.
- Realizar conversiones entre tipos de datos.
- Escribir y probar pequeños programas que utilicen variables y tipos básicos.
Contenido teórico:
¿Qué es una variable?
Una variable es un espacio en memoria donde se guarda un valor. En Python no es necesario declarar el tipo: se asigna automáticamente al usar =.
Reglas para nombrar variables:
- Deben empezar con una letra o guion bajo (
_) - No pueden comenzar con números
- No deben contener espacios ni signos especiales
- Son sensibles a mayúsculas (
edad≠Edad)
Tipos de datos básicos en Python:
| Tipo | Ejemplo | Descripción |
|---|---|---|
int |
42, -3 |
Número entero |
float |
3.14, -0.5 |
Número decimal |
str |
"Hola", 'Python' |
Cadena de texto |
bool |
True, False |
Booleano (verdadero/falso) |
list |
[1, 2, 3], ["a", "b"] |
Lista (colección ordenada) |
dict |
{"nombre": "Ana"} |
Diccionario (clave-valor) |
Conversión de tipos (casting):
Ejemplos prácticos:
Formatear texto con f-strings
Para insertar valores dentro de un texto, la forma moderna y recomendada en Python son las f-strings: una cadena precedida por la letra f en la que puedes escribir expresiones entre llaves { }.
Antes existían otras formas (concatenar con +, o "...%s" % valor), pero las f-strings son más legibles y menos propensas a errores, así que serán las que usemos durante todo el curso.
Ejemplo de lista (list)
Una lista es una colección ordenada y mutable de elementos. Puede contener cualquier tipo de dato (números, cadenas, objetos, etc.).
Ejemplo de diccionario (dict)
Un diccionario es una colección de pares clave → valor. Las claves son únicas y se usan para acceder a los valores.
Diferencias rápidas:
- Lista → colección ordenada, índices numéricos.
- Diccionario → colección no ordenada (hasta Python 3.6, ahora mantienen orden de inserción), acceso mediante claves.
Más colecciones y mutabilidad
Además de listas y diccionarios, Python incluye otras colecciones integradas — las tuplas (tuple), los conjuntos (set) y su variante inmutable frozenset — y una propiedad clave que distingue a todos estos tipos: la mutabilidad, es decir, si su contenido puede o no cambiar después de crearse.
Todo ello se estudia en detalle en el Módulo 2, Tema 6: Listas, Tuplas, Conjuntos y Diccionarios.
Actividades de la sesión:
1. Ejercicio guiado:
Escribir un programa que:
- Guarde el nombre, edad y ciudad del usuario.
- Muestre un mensaje como:
"Hola Laura, tienes 28 años y vives en Madrid." - Muestre el tipo de cada variable usando
type().
2. Ejercicio de aplicación:
Pedir al usuario 2 números por teclado y:
- Convertirlos a enteros
- Calcular la suma, resta, multiplicación y división
- Mostrar los resultados formateados
3. Mini quiz:
- ¿Qué tipo de dato es
"45"? - ¿Qué devuelve
type(3.0)? ¿Cómo se convierte un número a texto? - ¿Qué estructura guarda pares clave–valor? (Se puede hacer en Google Forms o en papel)
Tarea para casa:
- Crear un programa que almacene:
- Tu nombre
- Tu edad
- Una lista de tus 3 comidas favoritas
- Un diccionario con tus redes sociales (por ejemplo,
{"Instagram": "@usuario"})
- Mostrar todos los valores por pantalla.
Guardar como: datos_personales.py
Tema 3: Operadores Aritméticos y Lógicos
Objetivos de aprendizaje:
- Conocer y aplicar los operadores aritméticos en Python.
- Entender y utilizar los operadores de comparación y lógicos.
- Escribir expresiones condicionales usando operadores combinados.
- Realizar programas que usen operaciones matemáticas y lógicas simples.
Contenido teórico:
Operadores Aritméticos en Python
| Operador | Símbolo | Ejemplo (a=10, b=3) |
Resultado |
|---|---|---|---|
| Suma | + |
a + b |
13 |
| Resta | - |
a - b |
7 |
| Multiplicación | * |
a * b |
30 |
| División | / |
a / b |
3.333 |
| División entera | // |
a // b |
3 |
| Módulo (resto) | % |
a % b |
1 |
| Potencia | ** |
a ** b |
1000 |
Precedencia de operadores
Como en matemáticas: Paréntesis > Potencias > Multiplicación/División > Suma/Resta
Operadores de comparación (devuelven True o False)
| Operador | Símbolo | Ejemplo (x = 5) |
Resultado |
|---|---|---|---|
| Igual | == |
x == 5 |
True |
| Distinto | != |
x != 3 |
True |
| Mayor que | > |
x > 3 |
True |
| Menor que | < |
x < 2 |
False |
| Mayor o igual | >= |
x >= 5 |
True |
| Menor o igual | <= |
x <= 4 |
False |
Operadores lógicos (combinan condiciones)
| Operador | Uso | Descripción |
|---|---|---|
and |
True and True |
Devuelve True si ambas condiciones lo son |
or |
True or False |
Devuelve True si al menos una lo es |
not |
not True |
Invierte el valor lógico |
Actividades de la sesión:
1. Ejercicio práctico guiado:
Crea un programa que:
- Pida dos números al usuario
- Calcule y muestre:
- La suma, resta, multiplicación, división
- El resto de la división
- Si el primer número es mayor que el segundo
- Si ambos números son positivos (con operadores lógicos)
2. Ejercicio de práctica:
Escribe un programa que:
- Pida la edad del usuario
- Muestre si puede votar (
>= 18) - Muestre si está en edad de jubilación (
>= 65) - Mostrar si no está en edad de trabajar (menor de 16 o mayor de 65)
Mini Quiz:
- ¿Cuál es el operador para la potencia?
- ¿Qué devuelve
5 != 3? - ¿Qué hace el operador
and? - ¿Qué se imprime con
not(False or True)?
Tarea para casa:
Crear un script llamado calculadora.py que:
- Pida dos números
- Pida al usuario qué operación quiere hacer (
+,-,*,/,%) - Devuelva el resultado de esa operación
- Valide que la operación sea válida
Ejemplo de entrada/salida:
Evaluación:
- Creación del script de ejercicios y de la calculadora.
- Participación en el quiz.
- Uso correcto de operadores.
Tema 4: Estructuras de Control: Condicionales (if, elif, else,match-case)
Objetivos de aprendizaje:
- Entender el uso de las estructuras condicionales en Python.
- Aplicar
if,elifyelsepara controlar el flujo de un programa. - Utilizar condiciones anidadas y operadores lógicos en expresiones condicionales.
- Escribir programas que reaccionen a diferentes entradas del usuario.
Contenido teórico:
¿Qué es una estructura condicional?
Las estructuras condicionales permiten tomar decisiones en base al valor de una expresión lógica.
Sintaxis básica:
Ejemplo básico:
Uso de operadores en condicionales
Condicionales con and, or, not:
Condicionales anidadas:
Aunque en Python no existe un switch case tradicional como en otros lenguajes (Java, C, etc.), pero desde Python 3.10 se introdujo la estructura match-case, que funciona de manera similar.
1. Uso de match-case en Python
La sintaxis es:
Ejemplo con match-case
2. Equivalente con if-elif-else
Antes de Python 3.10, se resolvía usando cadenas de if:
3. Ventajas de match-case
- Código más limpio y legible.
- Permite hacer patrones avanzados (no solo igualdad).
- Útil para combinar valores o verificar tipos.
Ejemplo avanzado:
Actividades de la sesión:
1. Ejercicio guiado:
Programa que pida al usuario una calificación numérica (0 a 10) y devuelva:
- "Matrícula" si es 10
- "Sobresaliente" si es 9
- "Notable" si es 7 u 8
- "Aprobado" si es 5 o 6
- "Suspenso" si es menor de 5
2. Ejercicio de aplicación:
Crea un programa que simule un acceso:
- Pida nombre de usuario y contraseña.
- Si el usuario es "admin" y la contraseña "1234", mostrar "Acceso concedido".
- En cualquier otro caso, mostrar "Acceso denegado".
3. Ejercicio extra (opcional):
Crear un programa que:
- Pida el número de horas trabajadas y el precio por hora.
- Si trabaja más de 40 horas, las horas extra se pagan al 150%.
- Calcule el sueldo total.
Mini Quiz:
- ¿Qué palabra usamos para una condición adicional tras
if? - ¿Qué se ejecuta si ninguna condición es verdadera?
- ¿Cuál es la diferencia entre
=y==?
¿Qué resultado tiene esta instrucción?
Tarea para casa:
Crear un script clasificador_edades.py que:
- Pida una edad al usuario
- Clasifique la edad según:
- Menor de 3: "Bebé"
- 3 a 12: "Niño"
- 13 a 17: "Adolescente"
- 18 a 64: "Adulto"
- 65 o más: "Mayor"
Mostrar el mensaje correspondiente. Validar que la edad introducida sea positiva.
Evaluación:
- Creación de los scripts.
- Participación activa en el quiz y en los ejercicios guiados.
- Uso correcto de las estructuras condicionales.
Tema 5: Bucles (for, while) y control de flujo (break, continue, pass)
Objetivos de aprendizaje:
- Entender la utilidad de los bucles para automatizar tareas repetitivas.
- Usar bucles
forywhileen diferentes contextos. - Aplicar sentencias de control de flujo como
break,continueypass. - Resolver problemas mediante iteración.
Contenido teórico:
Bucle while
Ejecuta un bloque de código mientras se cumple una condición.
Asegúrate de modificar la condición dentro del bucle para evitar bucles infinitos.
Bucle for
Se usa para iterar sobre una secuencia (lista, cadena, rango, etc.)
Función range()
Permite generar secuencias numéricas:
Recorrer con índice: enumerate()
Cuando necesitas el índice además del elemento, evita range(len(...)): usa enumerate().
Recorrer dos listas a la vez: zip()
zip() empareja los elementos de varias listas posición a posición.
Control de flujo:
break: Sale del bucle inmediatamente
continue: Salta a la siguiente iteración
pass: No hace nada (se usa como marcador de posición)
Actividades de la sesión:
1. Ejercicio guiado:
- Crear un bucle
whileque:- Pida números al usuario hasta que introduzca el número 0.
- Sume todos los números introducidos.
- Muestre el total final.
2. Ejercicio práctico:
- Crear un programa que:
- Pida una palabra al usuario.
- Itere letra por letra con
for. - Ignore vocales (
continue). - Si encuentra una letra
"x"termina (break). - Muestra las letras procesadas.
3. Ejercicio adicional (opcional):
- Usar
foryrangepara generar una tabla de multiplicar del 1 al 10. - Mostrar el resultado de todas las tablas (del 1 al 10).
Mini Quiz:
- ¿Qué hace
range(1, 5)? - ¿Cuál es la diferencia entre
whileyfor? - ¿Qué se imprime con este código?
Tarea para casa:
Crear un script adivina_numero.py que:
- Genere un número aleatorio entre 1 y 100 (
random.randint(1,100``)). - Pida al usuario que adivine el número.
- Use un bucle
whilepara repetir intentos. - Indique si el número es mayor o menor.
- Finalice cuando el usuario acierta y muestre en cuántos intentos.
Actividades de refuerzo
Ejercicios combinados: Operadores, condicionales y bucles
Enunciado general:
Resuelve los siguientes ejercicios en un único script o en archivos separados, según se indique.
Ejercicio 1: Calculadora de notas
Crea un programa que:
- Pida al usuario una nota numérica entre 0 y 10.
- Use condicionales para mostrar:
< 5: “Suspenso”5-6: “Aprobado”7-8: “Notable”9: “Sobresaliente”10: “Matrícula”
- Repetir el proceso hasta que el usuario escriba "salir".
Ejercicio 2: Números pares e impares
- Solicita un número entero positivo al usuario.
- Usa un bucle
forpara imprimir desde 1 hasta ese número. - Muestra si cada número es par o impar con un condicional.
Ejercicio 3: Juego de acertar número
- El programa debe generar un número aleatorio del 1 al 20.
- El usuario debe adivinarlo.
- Indicar en cada intento si es mayor o menor.
- El juego termina al acertar.
Ejercicio 4: Calculadora de factorial
- Solicita un número entero positivo.
- Calcula su factorial usando un bucle
whileofor. - Ejemplo:
5! = 5 × 4 × 3 × 2 × 1 = 120
Mini-proyecto: "Calculadora interactiva por consola"
Objetivo:
Crear una calculadora simple en Python que permita al usuario realizar operaciones aritméticas básicas mediante menús en consola.
Requisitos funcionales:
- Mostrar un menú como este:
- El usuario selecciona una opción (1 al 6).
- Si selecciona una operación (1–5), debe ingresar dos números.
- Mostrar el resultado de la operación.
- Volver a mostrar el menú después de cada operación.
- Finaliza solo si elige la opción 6 ("Salir").
Requisitos técnicos:
- Usar un bucle
whilepara repetir el menú. - Validar que el usuario no divida por 0.
- Usar
if,elif,elsepara controlar las opciones. - Utilizar funciones para cada operación (opcional).