# Apuntes de python de python-total Estos apuntes y ejercicios en python han sido realizados en el trascurso del curso de python-total de [Federico Garay](https://ar.linkedin.com/in/fedegaray): - [Python-total](https://www.udemy.com/course/python-total) ¡Te recomiendo que hagas el curso y redactes tus propios apuntes! Este repositorio es para mi uso personal, pero si te sirve de ayuda, ¡pues me alegro! Quizá encuentres aquí cosas que no están en el curso, o viceversa, son apuntes personales 😊 ![](https://media.giphy.com/media/LYBHgc2yiO07G3dkkQ/giphy.gif) ## Índice del curso y apuntes realizados - [Día 1 - Programa un creador de nombres](dia_01/README.md) - 1.1. - print - 1.2. - strings - 1.3. - input - 1.4. - Proyecto del Día 1 - [Día 2 - Programa un calculador de comisiones](dia_02/README.md) - 2.1. - Tipos de datos - 2.2. - Variables - 2.3. - Nombres de variables - 2.4. - integers & floats - 2.5. - Conversiones - 2.6. - Formatear cadenas - 2.7. - Operadores matemáticos - 2.8. - Redondeo - 2.9. - Proyecto del Día 2 - [Día 3 - Programa un analizador de texto](dia_03/README.md) - 3.1. - Index( ) - 3.2. - Substrings - 3.3. - Métodos para Strings - 3.4. - Strings: propiedades - 3.5. - Listas - 3.6. - Diccionarios - 3.7. - Tuples - 3.8. - sets - 3.9. - booleanos - 3.10. - Proyecto del Día 3 - [Día 4 - Programa el juego "adivina el número"](dia_04/README.md) - 4.1. - Operadores de comparación - 4.2. - Operadores lógicos - 4.3. - Control de flujo - 4.4. - loops while - 4.5. - range( ) - 4.6. - enumerate( ) - 4.7. - zip( ) - 4.8. - min( ) & max( ) - 4.9. - random - 4.10. - Comprensión de listas - 4.11. - match - 4.12. - Proyecto del Día 4 - [Día 5 - Programa el juego "El ahorcado"](dia_05/README.md) - 5.1. - Documentación - 5.2. - Funciones - 5.3. - return - 5.4. - Funciones dinámicas - 5.5. - Interacción entre funciones - 5.6. - *args - 5.7. - **kwargs - 5.8. - Ejercicios - 5.9. - Proyecto del Día 5 - [Día 6 - Programa un recetario](dia_06/README.md) - 6.1. - Abrir y leer archivos - 6.2. - Crear y escribir archivos - 6.3. - Directorios - 6.4. - pathlib - 6.5. - Path - 6.6. - Limpiar la consola - 6.7. - Archivos + funciones - 6.8. - Proyecto del Día 6 - [Día 7 - Programa una cuenta bancaria](dia_07/README.md) - 7.1. - Clases - 7.2. - Atributos - 7.3. - Métodos - 7.4. - Tipos de métodos - 7.5. - Herencia - 7.6. - Herencia extendida - 7.7. - Polimorfismo - 7.8. - Pilares de la Programación Orientada a Objetos - 7.9. - Métodos especiales - 7.10. - Proyecto del Día 7 - [Día 8 - Programa una consola de turnos](dia_08/README.md) - 8.1. - Instalar paquetes - 8.2. - Módulos y paquetes - 8.3. - Manejo de errores - 8.4. - pylint - 8.5. - unittest - 8.6. - Decoradores - 8.7. - Generadores - 8.8. - Proyecto del Día 8 - [Día 9 - Programa un buscador de números de serie](dia_09/README.md) - 9.1. - Módulo collections - 9.2. - Módulos shutil & os - 9.3. - Módulo datetime - 9.4. - Módulo para medir el tiempo - 9.5. - Módulo math - 9.6. - Expresiones regulares - 9.7. - Comprimir y descomprimir archivos - 9.8. - Proyecto del Día 9 - [Día 10 - Programa el juego "Invasión espacial"](dia_10/README.md) - 10.1. - Distancia entre dos puntos - 10.2. - Convertir el Juego en un Archivo Ejecutable (.exe) - [Día 11 - Programa un web scraping](dia_11/README.md) - 11.1. - Extraer elementos de una clase - [Día 12 - Programa un gestor de restaurantes](dia_12/README.md) - [Día 13 - Programa un asistente de voz](dia_13/README.md) - 13.1. - Librerias y módulos - 13.2. - Algunos problemas con las bibliotecas - 13.3. - Enlaces - [Día 14 - Programa un controlador de asistencia](dia_14/README.md) - 14.1. - Bibliotecas - [Día 15 - Programa un modelo de machine learning](dia_15/README.md) - 5.1. - Bibliotecas - 5.2. - Definiciones - 5.3. - Cuadernos de trabajo en Colab de google drive - [Día 16 - Programa una aplicación web de tareas pendientes](dia_16/README.md) - 16.1. - Entornos Virtuales - 16.2. - Módulos - 16.3. - Preparación de estructura de trabajo - 16.4. - Configurar url - 16.5. - Crear tabla de tareas - 16.6. - Configurar la vista - 16.7. - Configurar la vista de Detalle - 16.8. - Crear Links a Detalle - 16.9. - Agregar nueva tarea - 16.10. - Formulario para nueva tarea - 16.11. - Editar tarea - 16.12. - Eliminar tarea - 16.13. - Crear la lógica de Logueo / Deslogueo - 16.14. - Formulario de Logueo / Deslogueo - 16.15. - Restringir acceso - 16.16. - Información específica de usuario - 16.17. - Registrar nuevo usuario - 16.18. - Barra de búsquedas - 16.19. - Un estilo para todas las vistas - 16.20. - Estilo general - 16.21. - Estilo de barra superiores - 16.22. - estilo de la lista - 16.23. - Estilo de la barra de cerca - 16.24. - Terminar el sitio - [Día 17 - Extra bibliotecas para hacking ético](dia_17/README.md) [Apuntes en PDF](https://vergaracarmona.es/wp-content/uploads/2023/05/Apuntes_python_Manuel_Vergara.pdf) ## Índice de ficheros ```shell python-total ├── dia_01 │   ├── main.py │   ├── primer_proyecto.py │   ├── programa01.py │   └── README.md ├── dia_02 │   ├── 01_variables.py │   ├── 02_Intengers_Floats.py │   ├── 02_Intengers_math.py │   ├── 03_Conversiones.py │   ├── 04_format.py │   ├── 05_operadores.py │   ├── 06_programa02.py │   └── README.md ├── dia_03 │   ├── 01_index.py │   ├── 02_sub_strings.py │   ├── 03_metodos.py │   ├── 04_string.py │   ├── 05_propiedades.py │   ├── 06_listas.py │   ├── 07_diccionarios.py │   ├── 08_tuplas.py │   ├── 09_set.py │   ├── 10_booleanos.py │   ├── 11_programa03.py │   ├── __pycache__ │   └── README.md ├── dia_04 │   ├── 01_operadores_comparacion.py │   ├── 02_operadores_logicos.py │   ├── 03_control_de_frujo.py │   ├── 04_for.py │   ├── 05_while.py │   ├── 06_rango.py │   ├── 07_enumerador.py │   ├── 08_zip.py │   ├── 09_min_max.py │   ├── 10_random.py │   ├── 11_comprension_listas.py │   ├── 12_match.py │   ├── 13_programa04.py │   └── README.md ├── dia_05 │   ├── 01_metodos_ayuda_docs.py │   ├── 02_funciones.py │   ├── 03_funciones_dinamicas.py │   ├── 04_ejemplo_funcion.py │   ├── 05_palito_mas_corto.py │   ├── 06_lanzar_dados.py │   ├── 07_limpiar_lista_promedio.py │   ├── 08_lanzar_moneda.py │   ├── 09_args_indeterminados.py │   ├── 10_problemas_practicos.py │   ├── 11_programa05.py │   └── README.md ├── dia_06 │   ├── 01_abrir_manipular_archivos.py │   ├── 02_crear_escribir_archivos.py │   ├── 03_directorios.py │   ├── 04_pathlib.py │   ├── 05_path.py │   ├── 06_limpiar_consola.py │   ├── 07_programa06.py │   ├── Europa │   │   ├── Consejos.txt │   │   ├── España │   │   ├── Francia │   │   └── Normativas.txt │   ├── prueba.txt │   ├── README.md │   ├── Recetas │   │   ├── Bebidas │   │   ├── Carnes │   │   ├── Ensaladas │   │   ├── Pastas │   │   ├── Postres │   │   └── Verduras │   └── Recetas.zip ├── dia_07 │   ├── 01_clases.py │   ├── 02_atributos.py │   ├── 03_metodos.py │   ├── 04_tipos_metodos.py │   ├── 05_herencia.py │   ├── 06_herencia_extendida.py │   ├── 07_polimorfismo.py │   ├── 08_metodos_especiales.py │   ├── 09_programa07.py │   └── README.md ├── dia_08 │   ├── 01_pruebas_modulos │   │   ├── moduloOcupado.py │   │   ├── moduloVacio.py │   │   └── __pycache__ │   ├── 02_pruebas_paquete │   │   ├── ejercicio.py │   │   └── paquete_ma │   ├── 03_manejo_errores.py │   ├── 04_probando_pylint.py │   ├── 05_probando_pylint │   │   ├── numeros.py │   │   └── practica_pylint.py │   ├── 06_probando_unittest │   │   ├── cambia_texto.py │   │   ├── prueba.py │   │   └── __pycache__ │   ├── 07_decoradores.py │   ├── 08_generadores.py │   ├── 09_programa08 │   │   ├── numeros.py │   │   ├── principal.py │   │   └── __pycache__ │   └── README.md ├── dia_09 │   ├── 01_modulo_collections.py │   ├── 02_modulo_os_shutil.py │   ├── 03_modulo_datetime_1.py │   ├── 03_modulo_datetime_2.py │   ├── 04_modulo_medir_tiempo.py │   ├── 05_modulo_math.py │   ├── 06_modulo_re.py │   ├── 07_modulo_comprimir_shutil.py │   ├── 07_modulo_comprimir_zipfile.py │   ├── 07_modulo_descomprimir_shutil.py │   ├── 07_modulo_descomprimir_zipfile.py │   ├── 08_Descomprimir_proyecto.py │   ├── 09_Programa09 │   │   ├── buscador_num_serie.py │   │   ├── Instrucciones.txt │   │   └── Mi_Gran_Directorio │   ├── carpeta_superior │   │   ├── carpeta_1 │   │   ├── carpeta_2 │   │   ├── carpeta_3 │   │   ├── fichero1 │   │   └── fichero2 │   ├── extraccion_terminada │   │   ├── carpeta_1 │   │   ├── carpeta_2 │   │   ├── carpeta_3 │   │   ├── fichero1 │   │   └── fichero2 │   ├── mi_texto_A.txt │   ├── mi_texto_B.txt │   ├── Proyecto+Dia+9.zip │   ├── README.md │   └── todo_comprimido.zip ├── dia_10 │   ├── fonts │   │   ├── game_over.ttf │   │   └── invaders.from.space.ttf │   ├── img │   │   ├── bala.png │   │   ├── cohete.png │   │   ├── enemigo.png │   │   ├── extraterrestre.png │   │   ├── Fondo.jpg │   │   ├── ovni.png │   │   ├── Penasolana_ajustada.jpg │   │   └── Penasolana.jpg │   ├── main.py │   ├── README.md │   └── sound │   ├── disparo.mp3 │   ├── Golpe.mp3 │   └── MusicaFondo.mp3 ├── dia_11 │   ├── 01_web_scraping_01.py │   ├── 02_web_scraping_02.py │   ├── mi_imagen.jpg │   ├── nul │   ├── programa_web_scraping.py │   └── README.md ├── dia_12 │   ├── lista_precios.txt │   ├── mi_restaurante.py │   ├── Primer_recibo.txt │   ├── README.md │   └── segundo_recibo.txt ├── dia_13 │   ├── asistente_virtual.py │   └── README.md ├── dia_14 │   ├── asistencia.py │   ├── Empleados │   │   ├── Cosmo Kramer.jpg │   │   ├── Elaine Benes.jpg │   │   ├── Federico Garay.jpg │   │   ├── George Constanza.jpg │   │   └── Jerry Seinfeld.jpg │   ├── FotoA.jpg │   ├── FotoB.jpg │   ├── FotoC.jpg │   ├── FotoD.jpg │   ├── README.md │   ├── reconocimiento_facial.py │   └── registro.csv ├── dia_15 │   ├── cuaderno_machine_learning.py │   ├── cuaderno_matplotlib.py │   ├── cuaderno_numpy.py │   ├── cuaderno_panda.py │   ├── DataSet_Titanic.csv │   ├── README.md │   └── ventas-autos.csv ├── dia_16 │   ├── mi_web │   │   ├── src │   │   └── web │   ├── README.md │   └── web_Python_Total │   ├── src │   └── web ├── doc_curso │   ├── 01_creador_de_nombres │   │   ├── 001Print.pdf │   │   ├── 002Strings.pdf │   │   ├── 003Input.pdf │   │   ├── 004Proyecto+del+Día+1.pdf │   │   └── 005Cerveceria.py │   ├── 02_calculador_de_comisiones │   │   ├── 006Tipos+de+Datos.pdf │   │   ├── 007Variables.pdf │   │   ├── 008Los+Nombres+de+las+Variables.pdf │   │   ├── 009Integers+y+Floats.pdf │   │   ├── 010Conversiones+entre+Tipos+de+Datos.pdf │   │   ├── 011Formatear+Cadenas.pdf │   │   ├── 012Operadores+Matemáticos.pdf │   │   ├── 013Redondeo.pdf │   │   ├── 014Proyecto+del+Día+2.pdf │   │   └── 015Comisiones.py │   ├── 03_analizador_de_texto │   │   ├── 016index(+).pdf │   │   ├── 017Substrings.pdf │   │   ├── 018Métodos+de+Strings.pdf │   │   ├── 019Propiedades+de+Strings.pdf │   │   ├── 020Listas.pdf │   │   ├── 021Diccionarios.pdf │   │   ├── 022Tuples.pdf │   │   ├── 023Sets+-+Métodos.pdf │   │   ├── 024Booleanos.pdf │   │   ├── 025Proyecto+del+Día+3.pdf │   │   └── 026Analizador_de_texto.py │   ├── 04_adivinar_numero │   │   ├── 027Operadores+de+Comparación.pdf │   │   ├── 028Operadores+Lógicos.pdf │   │   ├── 029Control+de+Flujo.pdf │   │   ├── 030Loops+While.pdf │   │   ├── 031Rango.pdf │   │   ├── 032Enumerador.pdf │   │   ├── 033Zip.pdf │   │   ├── 034Min+&+Max.pdf │   │   ├── 035Random.pdf │   │   ├── 036Comprensión+de+Listas.pdf │   │   ├── 037Match.pdf │   │   ├── 038Proyecto+del+Día+4.pdf │   │   └── 039Adivina_el_Numero.py │   ├── 05_ahorcado │   │   ├── 040Documentación.pdf │   │   ├── 041Funciones.pdf │   │   ├── 042Return.pdf │   │   ├── 043Funciones+Dinámicas.pdf │   │   ├── 044Interacción+entre+Funciones.pdf │   │   ├── 045Argumentos+Indefinidos+args.pdf │   │   ├── 046Argumentos+Indefinidos+kwargs.pdf │   │   ├── 047Ejercicio_1.pdf │   │   ├── 048Ejercicio_2.pdf │   │   ├── 049Ejercicio_3.pdf │   │   ├── 050Ejercicio_4.pdf │   │   ├── 051Proyecto+del+Día+5.pdf │   │   ├── 052Diagrama+Ahorcado.png │   │   └── 053Juego_Ahorcado.py │   ├── 06_recetario │   │   ├── 054Abrir+y+Leer+Archivos.pdf │   │   ├── 055Crear+y+Escribir+Archivos.pdf │   │   ├── 056Directorios.pdf │   │   ├── 057Pathlib.pdf │   │   ├── 058Path.pdf │   │   ├── 059Limpiar+la+Consola.pdf │   │   ├── 060Archivos+y+Funciones.pdf │   │   ├── 061Proyecto+del+Día+6.pdf │   │   └── 062Mis_Recetas.py │   ├── 07_cuenta_bancaria │   │   ├── 063Clases.pdf │   │   ├── 064Atributos.pdf │   │   ├── 065Métodos.pdf │   │   ├── 066Tipos+de+Métodos.pdf │   │   ├── 067Herencia.pdf │   │   ├── 068Herencia+Extendida.pdf │   │   ├── 069Polimorfismo.pdf │   │   ├── 070Métodos+Especiales.pdf │   │   ├── 071Proyecto+del+Día+7.pdf │   │   └── 072Cuenta_Bancaria.py │   ├── 08_consola_de_turnos │   │   ├── 073Instalar+Paquetes.pdf │   │   ├── 074Módulos+y+Paquetes.pdf │   │   ├── 075Manejo+de+Errores.pdf │   │   ├── 076Pylint.pdf │   │   ├── 077practica_pylint.py │   │   ├── 078posible_solucion_pylint.py │   │   ├── 079Unittest.pdf │   │   ├── 080Decoradores.pdf │   │   ├── 081Generadores.pdf │   │   ├── 082Proyecto+del+Día+8.pdf │   │   ├── 083numeros.py │   │   └── 084principal.py │   ├── 09_buscador_numeros_serie │   │   ├── 085Módulo+Collections.pdf │   │   ├── 086Módulo+Shutil+y+OS.pdf │   │   ├── 087Módulo+Datetime.pdf │   │   ├── 088Módulos+para+medir+el+tiempo.pdf │   │   ├── 089Módulo+Math.pdf │   │   ├── 090Expresiones+Regulares.pdf │   │   ├── 091Comprimir+y+Descomprimir+Archivos.pdf │   │   ├── 092Proyecto+del+Día+9.pdf │   │   └── 093proyecto_9.py │   ├── 10_invasion_espacial │   │   ├── 094Distancia+entre+dos+puntos.pdf │   │   └── 095programa_dia10 │   ├── 11_extractor_datos_web │   │   ├── 096Extraer+Elementos+de+una+Clase.pdf │   │   └── 097proyecto_11.py │   ├── 12_gestor_restaurantes │   │   ├── 098Lista_Precios.txt │   │   └── 099mi_restaurante.py │   ├── 13_asistente_voz │   │   └── 100asistente_virtual.py │   ├── 14_controlador_asistencia │   │   └── 101asistencia.py └── └── 16_web    └── 102mi_web.zip ```