Descripción
1 Herencia de Clases
1.1 Herencia en la POO
1.2 Clases heredadas y polimorfismo
1.3 Herencia múltiple
1.4 Ejercicio 1: Extender la clase Vehículo e implementarla
1.5 Ejercicio 2: Herencia simple. Puntos de dos dimensiones que se pueda usar para tres dimensiones
1.6 Ejercicio 3: Herencia múltiple. Construir una pirámide regular con base cuadrada y calcular el área y el volumen
2 Métodos de las colecciones
2.1 Cadenas
2.2 Listas
2.3 Conjuntos
2.4 Diccionarios
2.5 Ejercicio 1: Transformar un texto sin formato
2.6 Ejercicio 2: Crear una función que a partir de una lista de números: borre elementos duplicados, ordene la lista, elimine los números impares, realice la suma de los números que queden, añadir como primer elemento la suma realizada, devolver la lista modificada
3 Módulos y Paquetes
3.1 Módulos
3.2 Paquetes
3.3 Distribución básica
3.4 Módulos estándar
3.5 Collections
3.6 Datetime
3.7 Math
3.8 Random
3.9 Ejercicio 1: Crear un módulo para sumar, restar, multiplicar y dividir
3.10 Ejercicio 2: Desarrollar un módulo de un reloj de hora, minutos y segundos, con la hora actual
3.11 Ejercicio 3: Realizar un módulo para practicar la reutilización de código y los módulos random y math
4 Manejo de ficheros
4.1 Conceptos básicos
4.2 Ficheros de texto
4.3 Manejo del puntero
4.4 Ficheros y Objetos con Pickle
4.5 Catálogo de películas persistente
4.6 Ficheros CSV
4.7 Ficheros JSON
4.8 Ejercicio 1: Leer los datos de un fichero de texto, que transforme cada fila en un diccionario
4.9 Ejercicio 2: Leer un fichero que almacena un contador de visitas, se lo incrementará o decrementará y se lo volverá a guardar
4.10 Ejercicio 3: Crear un gestor de personajes para añadir y borrar información, con el módulo pickle
5 Interfaces gráficas con Tkinter
5.1 Tkinter y los Widgets
5.2 Tk (Raíz)
5.3 Frames (Marcos)
5.4 Labels (Etiquetas)
5.5 Entry (Campos de texto)
5.6 Text (Textos largos)
5.7 Buttons (Botones)
5.8 RadioButtons (Botones radiales)
5.9 CheckButtons (Botones seleccionables)
5.10 Menus (Menúes)
5.11 Popups (Ventanas emergentes)
5.12 Popups avanzados
5.13 Proyecto Editor de texto con Ficheros I
5.14 Proyecto Editor de texto con Ficheros II
5.15 Proyecto Editor de texto con Ficheros III
6 BD con SQLite
6.1 Bases de datos
6.2 Modelos de bases de datos
6.3 Bases de datos relacionales
6.4 SGBD Relacionales
6.5 ¿Qué es SQL?
6.6 Ejercicio 1: Gestionar los platos del menú de un restaurante
6.7 Ejercicio 2: Crear una categoría
6.8 Ejercicio 3: Agregar plato
6.9 Ejercicio 4: Mostrar menú
7 Funciones avanzadas
7.1 Operadores encadenados
7.2 Comprensión de listas
7.3 Funciones decoradoras I
7.4 Funciones decoradoras II
7.5 Funciones generadoras e iteradores
7.6 Funciones lambda
7.6.1 Ejemplos
7.6.2 Ejercicio 1: Tupla con un número introducido por parámetro, su doble y su cuadrado
7.7 Función filter()
7.7.1 Ejercicio 2: Filtrar números positivos
7.8 Función map()
7.8.1 Ejercicio 3: Convertir grados Celsius a Fahrenheit
7.9 Función reduce()
7.9.1 Ejercicio 4: Quedarse con la palabra con más letras a
7.10 Función sorted()
7.10.1 Ejercicio 5: Ordenar por número de apariciones de una letra
7.11 Expresiones regulares I
7.12 Expresiones regulares II
7.13 Expresiones regulares III
8 Documentación y pruebas
8.1 Docstrings
8.2 Doctest I
8.3 Doctest II
9 Proyecto Final
9.1 Demostración
9.2 Organización
9.3 Módulo Database
9.4 Pruebas unitarias
9.5 Estructura del menú
9.6 Funciones auxiliares
9.7 Implementación del menú
9.8 Validación del DNI
9.9 Persistencia en CSV
9.10 Ficheros específicos de pruebas
9.11 GUI (1) Ventana principal
9.12 GUI (2) Mixin para centrar widgets
9.13 GUI (3) Widget TreeView
9.14 GUI (4) Diálogo de borrado
9.15 GUI (5) Subventana de creación
9.16 GUI (6) Validación en tiempo real
9.17 GUI (7) Manejo del botón crear
9.18 GUI (8) Subventana de edición
9.19 GUI (9) Sincronización de datos
9.20 GUI (10) Modo terminal e interfaz
