# 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 
```
