Añadir estructura de READMEs y ejercicio día 16

Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
Manuel Vergara 2023-05-19 01:34:00 +02:00
parent 47dd7dfb2d
commit 44f6e0de61
23 changed files with 1062 additions and 11 deletions

170
README.md
View File

@ -1,2 +1,172 @@
# Curso de python
## [Manuel Vergara](https://vergaracarmona.es) 2023
Este documento contiene los apuntes tomados en el curso «[Python total](https://www.udemy.com/course/python-total)» impartido por «Escuela Directa» en enero y febrero de 2023. El curso udemy consta de 30 horas aproximadamente de vídeo-tutoriales. Las prácticas aquí contenidas tuvieron una duración de alrededor de unas 150 horas.
Los apuntes no fueron pensados para compartirlos, por ello pueden tener lagunas de información o contenido adicional respecto al curso, ya que se redactaron para recordar procedimientos y conceptos que el autor creyó relevantes. Teniendo un documento, a mi parecer, tan completo y entendiendo que el conocimiento debe ser libre se decidió compartirlo.
Si te parece útil este documento puedes agradecerlo a través de las vías de contacto de la web https://vergaracarmona.es
Recuerda,
>*"Quien se corta su propia leña se calienta dos veces"*
---
<br>
## Licencia
![](https://creativecommons.org/wp-content/themes/cc/images/cc.logo.white.svg)
Esta obra está bajo una Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional. Para ver una copia de esta licencia, visite https://creativecommons.org/licenses/by-sa/4.0/legalcode.es.
Usted es libre de:
- Compartir — copiar y redistribuir el material en cualquier medio o formato
- Adaptar — remezclar, transformar y crear a partir del material para cualquier finalidad, incluso comercial.
Bajo las condiciones siguientes:
- Reconocimiento — Debe reconocer adecuadamente la autoría, proporcionar un enlace a la licencia e indicar si se han realizado cambios. Puede hacerlo de cualquier manera razonable, pero no de una manera que sugiera que tiene el apoyo del licenciador o lo recibe por el uso que hace.
- Compartir Igual — Si remezcla, transforma o crea a partir del material, deberá difundir sus contribuciones bajo la misma licencia que el original.
![](https://mirrors.creativecommons.org/presskit/buttons/88x31/png/by-sa.png)
- No hay restricciones adicionales — No puede aplicar términos legales o medidas tecnológicas que legalmente restrinjan realizar aquello que la licencia permite.
Esta licencia está aceptada para Obras Culturales Libres.
El licenciador no puede revocar estas libertades mientras cumpla con los términos de la licencia.
---
<br>
## Índice de las materias de los días
- [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 extracto de datos web](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)
- 17.1. - Bibliotecas

103
dia_01/README.md Normal file
View File

@ -0,0 +1,103 @@
# Día 1 - Programa un creador de nombres
## Índice
- [Día 1 - Programa un creador de nombres](#día-1---programa-un-creador-de-nombres)
- [Índice](#índice)
- [1.1. - print](#11---print)
- [1.1.1. - Mostrar texto](#111---mostrar-texto)
- [1.1.2. - Mostrar números](#112---mostrar-números)
- [1.2. - strings](#12---strings)
- [1.2.1. - Concatenación](#121---concatenación)
- [1.2.2. - Caracteres especiales](#122---caracteres-especiales)
- [1.3. - input](#13---input)
- [1.4. - Proyecto del Día 1](#14---proyecto-del-día-1)
- [Ficheros y documentación del día 1](#ficheros-y-documentación-del-día-1)
## 1.1. - print
print - Declaración que al ejecutarse muestra (o imprime) en pantalla el argumento que se introduce dentro de los paréntesis.
### 1.1.1. - Mostrar texto
Ingresamos entre comillas simples o dobles los caracteres de texto que deben mostrarse en pantalla.
```python
print("Hola mundo")
```
Output
Hola mundo
### 1.1.2. - Mostrar números
Podemos entregarle a print() el número que debe mostrar, o una operación matemática a resolver. No empleamos comillas en estos casos.
```python
print(150 + 50)
```
output
200
## 1.2. - strings
Los strings en Python son un tipo de dato formado por cadenas (o secuencias) de caracteres de cualquier tipo, formando un texto.
### 1.2.1. - Concatenación
Unificación de cadenas de texto:
```python
print("Hola" + " " + "mundo")
```
output
Hola mundo
### 1.2.2. - Caracteres especiales
Indicamos a la consola que el caracter a continuación del símbolo \ debe ser tratado como un caracter especial.
- `\"` --> Imprime comillas
- `\n` --> Separa texto en una nueva linea
- `\t` --> Imprime un tabulador
- `\\` --> Imprime la barra invertida textualmente
## 1.3. - input
Función que permite al usuario introducir información por medio del teclado al ejecutarse, otorgándole una instrucción acerca del ingreso solicitado. El código continuará ejecutándose luego de que el usuario realice la acción.
```python
input("Dime tu nombre: ")
```
output
Dime tu nombre: |
```python
print("Tu nombre es " + input("Dime tu nombre: "))
```
output
Dime tu nombre: Federico
Tu nombre es Federico
## 1.4. - Proyecto del Día 1
Imagina esta situación: tu mejor amigo ha puesto una fábrica de cerveza y tiene todo listo. Su producto es fantástico, tiene cuerpo, buen sabor, buen color, el nivel justo de espuma… pero le falta una identidad. No se le ocurre qué nombre ponerle su cerveza para que tenga una identidad única y original. Entonces vienes tú y le dices "No te preocupes, yo voy a crear un programa que te va a hacer dos preguntas y luego te va a decir cuál es el nombre de tu cerveza". Así de simple.
Ya sé que en el mundo real no necesitaríamos desarrollar un software solo para hacer dos preguntas, pero hasta que aprendamos más funcionalidades los programas van a tener que mantenerse en el terreno de lo simple. Igualmente, si está recién comenzando, este va a ser todo un desafío.
Vas a crear un código en Python que le pida a tu amigo que responda dos preguntas que requieran una sola palabra cada una y que luego le muestre en pantalla esas palabras combinadas, para formar una marca creativa.
Puedes usar las preguntas que quieras. La idea es que el resultado sea original, creativo, y hasta cómico, y si quieres agregar dificultad al desafío, te sugiero que intentes que el nombre de la cerveza se imprima entre comillas. Recuerda que hay diferentes formas de que la función print muestre las comillas sin cortar el string, y que ingrese la impresión final en al menos dos líneas utilizando saltos de línea dentro del código.
Intenta hacerlo por tu cuenta y si se complica, no te preocupes, en la próxima elección lo vamos a resolver juntos.
## Ficheros y documentación del día 1
- [main.py](main.py)
- [primer_programa.py](primer_programa.py)
- [programa01.py](programa01.py)
[Documentación curso](../doc_curso/01_creador_de_nombres/)

45
dia_02/README.md Normal file
View File

@ -0,0 +1,45 @@
# Día 2 - Programa un calculador de comisiones
## Índice
- [Día 2 - Programa un calculador de comisiones](#día-2---programa-un-calculador-de-comisiones)
- [Índice](#índice)
- [2.1. - Tipos de datos](#21---tipos-de-datos)
- [2.2. - Variables](#22---variables)
- [2.3. - Nombres de variables](#23---nombres-de-variables)
- [2.4. - integers \& floats](#24---integers--floats)
- [2.5. - Conversiones](#25---conversiones)
- [2.6. - Formatear cadenas](#26---formatear-cadenas)
- [2.7. - Operadores matemáticos](#27---operadores-matemáticos)
- [2.8. - Redondeo](#28---redondeo)
- [2.9. - Proyecto del Día 2](#29---proyecto-del-día-2)
- [Ficheros y documentación del día 2](#ficheros-y-documentación-del-día-2)
## 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
## Ficheros y documentación del día 2
- [01_variables.py](01_variables.py)
- [02_intengers_floats.py](02_intengers_Floats.py)
- [02_intengers_math.py](02_intengers_math.py)
- [03_Conversiones.py](03_Conversiones.py)
- [04_format.py](04_format.py)
- [05_operadores.py](05_operadores.py)
- [06_programa02.py](06_programa02.py)
[Documentación curso](../doc_curso/02_calculador_comisiones/)

52
dia_03/README.md Normal file
View File

@ -0,0 +1,52 @@
# Día 3 - Programa un analizador de texto
## Índice
- [Día 3 - Programa un analizador de texto](#día-3---programa-un-analizador-de-texto)
- [Índice](#índice)
- [3.1. - Index( )](#31---index-)
- [3.2. - Substrings](#32---substrings)
- [3.3. - Métodos para Strings](#33---métodos-para-strings)
- [3.4. - Strings: propiedades](#34---strings-propiedades)
- [3.5. - Listas](#35---listas)
- [3.6. - Diccionarios](#36---diccionarios)
- [3.7. - Tuples](#37---tuples)
- [3.8. - sets](#38---sets)
- [3.9. - booleanos](#39---booleanos)
- [3.10. - Proyecto del Día 3](#310---proyecto-del-día-3)
- [Ficheros y documentación del día 3](#ficheros-y-documentación-del-día-3)
## 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
## Ficheros y documentación del día 3
- [01_index.py](01_index.py)
- [02_sub_strings.py](02_sub_strings.py)
- [03_metodos.py](03_metodos.py)
- [04_string.py](04_string.py)
- [05_propiedades.py](05_propiedades.py)
- [06_listas.py](06_listas.py)
- [07_diccionarios.py](07_diccionarios.py)
- [08_tuplas.py](08_tuplas.py)
- [09_set.py](09_set.py)
- [10_booleanos.py](10_booleanos.py)
- [11_programa03.py](11_programa03.py)
- [__pycache__](__pycache__)
[Documentación curso](../doc_curso/03_analizador_de_texto/)

59
dia_04/README.md Normal file
View File

@ -0,0 +1,59 @@
# Día 4 - Programa el juego "adivina el número"
## Índice
- [Día 4 - Programa el juego "adivina el número"](dia_04/README.md)
- [4.1. - Operadores de comparación](dia_04/01_operadores_de_comparacion.md)
- [4.2. - Operadores lógicos](dia_04/02_operadores_logicos.md)
- [4.3. - Control de flujo](dia_04/03_control_de_flujo.md)
- [4.4. - loops while](dia_04/04_loops_while.md)
- [4.5. - range( )](dia_04/05_range.md)
- [4.6. - enumerate( )](dia_04/06_enumerate.md)
- [4.7. - zip( )](dia_04/07_zip.md)
- [4.8. - min( ) & max( )](dia_04/08_min_max.md)
- [4.9. - random](dia_04/09_random.md)
- [4.10. - Comprensión de listas](dia_04/10_comprension_de_listas.md)
- [4.11. - match](dia_04/11_match.md)
- [4.12. - Proyecto del Día 4](dia_04/12_proyecto.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
## Ficheros y documentación del día 4
- [01_operadores_comparacion.py](01_operadores_comparacion.py)
- [02_operadores_logicos.py](02_operadores_logicos.py)
- [03_control_de_frujo.py](03_control_de_frujo.py)
- [04_for.py](04_for.py)
- [05_while.py](05_while.py)
- [06_rango.py](06_rango.py)
- [07_enumerador.py](07_enumerador.py)
- [08_zip.py](08_zip.py)
- [09_min_max.py](09_min_max.py)
- [10_random.py](10_random.py)
- [11_comprension_listas.py](11_comprension_listas.py)
- [12_match.py](12_match.py)
- [13_programa04.py](13_programa04.py)
[Documentación curso](../doc_curso/04_adivinar_numero/)

46
dia_05/README.md Normal file
View File

@ -0,0 +1,46 @@
# Día 5 - Programa el juego "El ahorcado"
- [Día 5 - Programa el juego "El ahorcado"](#día-5---programa-el-juego-el-ahorcado)
- [5.1. - Documentación](#51---documentación)
- [5.2. - Funciones](#52---funciones)
- [5.3. - return](#53---return)
- [5.4. - Funciones dinámicas](#54---funciones-dinámicas)
- [5.5. - Interacción entre funciones](#55---interacción-entre-funciones)
- [5.6. - \*args](#56---args)
- [5.7. - \*\*kwargs](#57---kwargs)
- [5.8. - Ejercicios](#58---ejercicios)
- [5.9. - Proyecto del Día 5](#59---proyecto-del-día-5)
- [Ficheros y documentación del día 5](#ficheros-y-documentación-del-día-5)
## 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
## Ficheros y documentación del día 5
- [01_metodos_ayuda_docs.py](01_metodos_ayuda_docs.py)
- [02_funciones.py](02_funciones.py)
- [03_funciones_dinamicas.py](03_funciones_dinamicas.py)
- [04_ejemplo_funcion.py](04_ejemplo_funcion.py)
- [05_palito_mas_corto.py](05_palito_mas_corto.py)
- [06_lanzar_dados.py](06_lanzar_dados.py)
- [07_limpiar_lista_promedio.py](07_limpiar_lista_promedio.py)
- [08_lanzar_moneda.py](08_lanzar_moneda.py)
- [09_args_indeterminados.py](09_args_indeterminados.py)
- [10_problemas_practicos.py](10_problemas_practicos.py)
- [11_programa05.py](11_programa05.py)
[Documentación curso](../doc_curso/05_ahorcado/)

45
dia_06/README.md Normal file
View File

@ -0,0 +1,45 @@
# Día 6 - Programa un recetario
## Índice
- [Día 6 - Programa un recetario](#día-6---programa-un-recetario)
- [Índice](#índice)
- [6.1. - Abrir y leer archivos](#61---abrir-y-leer-archivos)
- [6.2. - Crear y escribir archivos](#62---crear-y-escribir-archivos)
- [6.3. - Directorios](#63---directorios)
- [6.4. - pathlib](#64---pathlib)
- [6.5. - Path](#65---path)
- [6.6. - Limpiar la consola](#66---limpiar-la-consola)
- [6.7. - Archivos + funciones](#67---archivos--funciones)
- [6.8. - Proyecto del Día 6](#68---proyecto-del-día-6)
- [Ficheros y documentación del día 6](#ficheros-y-documentación-del-día-6)
## 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
## Ficheros y documentación del día 6
- [01_abrir_manipular_archivos.py](01_abrir_manipular_archivos.py)
- [02_crear_escribir_archivos.py](02_crear_escribir_archivos.py)
- [03_directorios.py](03_directorios.py)
- [04_pathlib.py](04_pathlib.py)
- [05_path.py](05_path.py)
- [06_limpiar_consola.py](06_limpiar_consola.py)
- [07_programa06.py](07_programa06.py)
- [Europa](Europa/)
- [prueba.txt](prueba.txt)
- [Recetas](Recetas/)
- [Recetas.zip](Recetas.zip)
Documentación curso: [06_recetario](../doc_curso/06_recetario/)

50
dia_07/README.md Normal file
View File

@ -0,0 +1,50 @@
# Día 7 - Programa una cuenta bancaria
## Índice
- [Día 7 - Programa una cuenta bancaria](#día-7---programa-una-cuenta-bancaria)
- [Índice](#índice)
- [7.1. - Clases](#71---clases)
- [7.2. - Atributos](#72---atributos)
- [7.3. - Métodos](#73---métodos)
- [7.4. - Tipos de métodos](#74---tipos-de-métodos)
- [7.5. - Herencia](#75---herencia)
- [7.6. - Herencia extendida](#76---herencia-extendida)
- [7.7. - Polimorfismo](#77---polimorfismo)
- [7.8. - Pilares de la Programación Orientada a Objetos](#78---pilares-de-la-programación-orientada-a-objetos)
- [7.9. - Métodos especiales](#79---métodos-especiales)
- [7.10. - Proyecto del Día 7](#710---proyecto-del-día-7)
- [Ficheros y documentación](#ficheros-y-documentación)
## 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
## Ficheros y documentación
- [01_clases.py](01_clases.py)
- [02_atributos.py](02_atributos.py)
- [03_metodos.py](03_metodos.py)
- [04_tipos_metodos.py](04_tipos_metodos.py)
- [05_herencia.py](05_herencia.py)
- [06_herencia_extendida.py](06_herencia_extendida.py)
- [07_polimorfismo.py](07_polimorfismo.py)
- [08_metodos_especiales.py](08_metodos_especiales.py)
- [09_programa07.py](09_programa07.py)
[Documentación del curso](../doc_curso/07_cuenta_bancaria/)

43
dia_08/README.md Normal file
View File

@ -0,0 +1,43 @@
# Día 8 - Programa una consola de turnos
## Índice
- [Día 8 - Programa una consola de turnos](#día-8---programa-una-consola-de-turnos)
- [Índice](#índice)
- [8.1. - Instalar paquetes](#81---instalar-paquetes)
- [8.2. - Módulos y paquetes](#82---módulos-y-paquetes)
- [8.3. - Manejo de errores](#83---manejo-de-errores)
- [8.4. - pylint](#84---pylint)
- [8.5. - unittest](#85---unittest)
- [8.6. - Decoradores](#86---decoradores)
- [8.7. - Generadores](#87---generadores)
- [8.8. - Proyecto del Día 8](#88---proyecto-del-día-8)
- [Ficheros y documentación](#ficheros-y-documentación)
## 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
## Ficheros y documentación
- [01_pruebas_modulos](01_pruebas_modulos/)
- [02_pruebas_paquete](02_pruebas_paquete/)
- [03_manejo_errores.py](03_manejo_errores.py)
- [04_probando_pylint.py](04_probando_pylint.py)
- [05_probando_pylint](05_probando_pylint/)
- [06_probando_unittest](06_probando_unittest/)
- [07_decoradores.py](07_decoradores.py)
- [08_generadores.py](08_generadores.py)
- [09_programa08](09_programa08/)
[Documentación del curso](../doc_curso/08_consola_turnos/)

54
dia_09/README.md Normal file
View File

@ -0,0 +1,54 @@
# Día 9 - Programa un buscador de números de serie
## Índice
- [Día 9 - Programa un buscador de números de serie](#día-9---programa-un-buscador-de-números-de-serie)
- [Índice](#índice)
- [9.1. - Módulo collections](#91---módulo-collections)
- [9.2. - Módulos shutil \& os](#92---módulos-shutil--os)
- [9.3. - Módulo datetime](#93---módulo-datetime)
- [9.4. - Módulo para medir el tiempo](#94---módulo-para-medir-el-tiempo)
- [9.5. - Módulo math](#95---módulo-math)
- [9.6. - Expresiones regulares](#96---expresiones-regulares)
- [9.7. - Comprimir y descomprimir archivos](#97---comprimir-y-descomprimir-archivos)
- [9.8. - Proyecto del Día 9](#98---proyecto-del-día-9)
- [Ficheros y documentación](#ficheros-y-documentación)
## 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
## Ficheros y documentación
- [01_modulo_collections.py](01_modulo_collections.py)
- [02_modulo_os_shutil.py](02_modulo_os_shutil.py)
- [03_modulo_datetime_1.py](03_modulo_datetime_1.py)
- [03_modulo_datetime_2.py](03_modulo_datetime_2.py)
- [04_modulo_medir_tiempo.py](04_modulo_medir_tiempo.py)
- [05_modulo_math.py](05_modulo_math.py)
- [06_modulo_re.py](06_modulo_re.py)
- [07_modulo_comprimir_shutil.py](07_modulo_comprimir_shutil.py)
- [07_modulo_comprimir_zipfile.py](07_modulo_comprimir_zipfile.py)
- [07_modulo_descomprimir_shutil.py](07_modulo_descomprimir_shutil.py)
- [07_modulo_descomprimir_zipfile.py](07_modulo_descomprimir_zipfile.py)
- [08_Descomprimir_proyecto.py](08_Descomprimir_proyecto.py)
- [09_Programa09](09_Programa09.py)
- [carpeta_superior](carpeta_superior)
- [extraccion_terminada](extraccion_terminada)
- [mi_texto_A.txt](mi_texto_A.txt)
- [mi_texto_B.txt](mi_texto_B.txt)
- [Proyecto+Dia+9.zip](Proyecto+Dia+9.zip)
- [todo_comprimido.zip](todo_comprimido.zip)
[Documentación curso](../doc_curso/09_buscador_numeros_serie/)

21
dia_10/README.md Normal file
View File

@ -0,0 +1,21 @@
# Día 10 - Programa el juego "Invasión espacial
## Índice
- [Día 10 - Programa el juego "Invasión espacial](#día-10---programa-el-juego-invasión-espacial)
- [Índice](#índice)
- [10.1. - Distancia entre dos puntos](#101---distancia-entre-dos-puntos)
- [10.2. - Convertir el Juego en un Archivo Ejecutable (.exe)](#102---convertir-el-juego-en-un-archivo-ejecutable-exe)
- [Ficheros y documentación](#ficheros-y-documentación)
## 10.1. - Distancia entre dos puntos
## 10.2. - Convertir el Juego en un Archivo Ejecutable (.exe)
## Ficheros y documentación
- [fonts](fonts)
- [img](img)
- [main.py](main.py)
- [sound](sound)
[Documentación curso](../doc_curso/10_invasion_espacial/)

17
dia_11/README.md Normal file
View File

@ -0,0 +1,17 @@
# Día 11 - Programa un extracto de datos web
## Índice
- [Día 11 - Programa un extracto de datos web](#día-11---programa-un-extracto-de-datos-web)
- [Índice](#índice)
- [11.1. - Extraer elementos de una clase](#111---extraer-elementos-de-una-clase)
- [Ficheros y documentación](#ficheros-y-documentación)
## 11.1. - Extraer elementos de una clase
## Ficheros y documentación
- [01_web_scraping_01.py](01_web_scraping_01.py)
- [02_web_scraping_02.py](02_web_scraping_02.py)
- [mi_imagen.jpg](mi_imagen.jpg)
- [programa_web_scraping.py](programa_web_scraping.py)
[Documentación del curso](../doc_curso/11_web_scraping/)

13
dia_12/README.md Normal file
View File

@ -0,0 +1,13 @@
# Día 12 - Programa un gestor de restaurantes
## Índice
[Día 12 - Programa un gestor de restaurantes](#día-12---programa-un-gestor-de-restaurantes)
## Ficheros y documentación
- [lista_precios.txt](lista_precios.txt)
- [mi_restaurante.py](mi_restaurante.py)
- [Primer_recibo.txt](Primer_recibo.txt)
- [segundo_recibo.txt](segundo_recibo.txt)
[Documentación del curso](../doc_curso/12_restaurante/)

20
dia_13/README.md Normal file
View File

@ -0,0 +1,20 @@
# Día 13 - Programa un asistente de voz
## Índice
- [Día 13 - Programa un asistente de voz](#día-13---programa-un-asistente-de-voz)
- [Índice](#índice)
- [13.1. - Librerias y módulos](#131---librerias-y-módulos)
- [13.2. - Algunos problemas con las bibliotecas](#132---algunos-problemas-con-las-bibliotecas)
- [13.3. - Enlaces](#133---enlaces)
- [Ficheros y documentación](#ficheros-y-documentación)
## 13.1. - Librerias y módulos
## 13.2. - Algunos problemas con las bibliotecas
## 13.3. - Enlaces
## Ficheros y documentación
- [asistente_virtual.py](asistente_virtual.py)
[Documentación del curso](../doc_curso/13_asistente_voz/)

22
dia_14/README.md Normal file
View File

@ -0,0 +1,22 @@
# Día 14 - Programa un controlador de asistencia
## Índice
- [Día 14 - Programa un controlador de asistencia](#día-14---programa-un-controlador-de-asistencia)
- [Índice](#índice)
- [14.1. - Bibliotecas](#141---bibliotecas)
- [Ficheros y documentación](#ficheros-y-documentación)
## 14.1. - Bibliotecas
## Ficheros y documentación
- [asistencia.py](asistencia.py)
- [Empleados](Empleados/)
- [FotoA.jpg](FotoA.jpg)
- [FotoB.jpg](FotoB.jpg)
- [FotoC.jpg](FotoC.jpg)
- [FotoD.jpg](FotoD.jpg)
- [reconocimiento_facial.py](reconocimiento_facial.py)
- [registro.csv](registro.csv)
[Documentación del curso](../doc_curso/14_asistencia/)

View File

@ -1,19 +1,27 @@
# Dia 15 - machine learning
# Dia 15 - Programa un modelo de machine learning
En esta unidad se ha trabajado a través de tres cuadernos de trabajo Colab de google drive:
Cuaderno de prácticas con Numpy: https://colab.research.google.com/drive/1vp7zrchG_pJF3uzEgbCjfb_piu43mJXS?usp=sharing
Cuaderno de prácticas con Panda: https://colab.research.google.com/drive/1-E33EMCehgPnmqgwm13-SZSnVYOHMpuQ?usp=sharing
Cuaderno de prácticas con Machine Learning: https://colab.research.google.com/drive/1zRVPpLLmhMkmhX_kB9qrWUppHzRTJPFM?usp=sharing
## Índice
- [Dia 15 - Programa un modelo de machine learning](#dia-15---programa-un-modelo-de-machine-learning)
- [Índice](#índice)
- [5.1. - Bibliotecas](#51---bibliotecas)
- [5.2. - Definiciones](#52---definiciones)
- [5.3. - Cuadernos de trabajo en Colab de google drive](#53---cuadernos-de-trabajo-en-colab-de-google-drive)
- [Ficheros y documentación](#ficheros-y-documentación)
La solución a los ejercicios son las siguientes.
## 5.1. - Bibliotecas
- [Cuaderno de prácticas con Numpy](cuaderno_numpy.py)
## 5.2. - Definiciones
- [Cuaderno de prácticas con Panda](cuaderno_panda.py)
- [Cuaderno de prácticas con Machine Learning]()
## 5.3. - Cuadernos de trabajo en Colab de google drive
## Ficheros y documentación
- [cuaderno_machine_learning.py](cuaderno_machine_learning.py)
- [cuaderno_matplotlib.py](cuaderno_matplotlib.py)
- [cuaderno_numpy.py](cuaderno_numpy.py)
- [cuaderno_panda.py](cuaderno_panda.py)
- [DataSet_Titanic.csv](DataSet_Titanic.csv)
- [ventas-autos.csv](ventas-autos.csv)
[Documentación del curso](../doc_curso/15_machine_learning/)

84
dia_16/README.md Normal file
View File

@ -0,0 +1,84 @@
# Día 16 - Programa una aplicación web de tareas pendientes
## Índice
- [Día 16 - Programa una aplicación web de tareas pendientes](#día-16---programa-una-aplicación-web-de-tareas-pendientes)
- [Índice](#índice)
- [16.1. - Entornos Virtuales](#161---entornos-virtuales)
- [16.2. - Módulos](#162---módulos)
- [16.3. - Preparación de estructura de trabajo](#163---preparación-de-estructura-de-trabajo)
- [16.4. - Configurar url](#164---configurar-url)
- [16.5. - Crear tabla de tareas](#165---crear-tabla-de-tareas)
- [16.6. - Configurar la vista](#166---configurar-la-vista)
- [16.7. - Configurar la vista de Detalle](#167---configurar-la-vista-de-detalle)
- [16.8. - Crear Links a Detalle](#168---crear-links-a-detalle)
- [16.9. - Agregar nueva tarea](#169---agregar-nueva-tarea)
- [16.10. - Formulario para nueva tarea](#1610---formulario-para-nueva-tarea)
- [16.11. - Editar tarea](#1611---editar-tarea)
- [16.12. - Eliminar tarea](#1612---eliminar-tarea)
- [16.13. - Crear la lógica de Logueo / Deslogueo](#1613---crear-la-lógica-de-logueo--deslogueo)
- [16.14. - Formulario de Logueo / Deslogueo](#1614---formulario-de-logueo--deslogueo)
- [16.15. - Restringir acceso](#1615---restringir-acceso)
- [16.16. - Información específica de usuario](#1616---información-específica-de-usuario)
- [16.17. - Registrar nuevo usuario](#1617---registrar-nuevo-usuario)
- [16.18. - Barra de búsquedas](#1618---barra-de-búsquedas)
- [16.19. - Un estilo para todas las vistas](#1619---un-estilo-para-todas-las-vistas)
- [16.20. - Estilo general](#1620---estilo-general)
- [16.21. - Estilo de barra superiores](#1621---estilo-de-barra-superiores)
- [16.22. - estilo de la lista](#1622---estilo-de-la-lista)
- [16.23. - Estilo de la barra de cerca](#1623---estilo-de-la-barra-de-cerca)
- [16.24. - Terminar el sitio](#1624---terminar-el-sitio)
- [Ficheros y documentación](#ficheros-y-documentación)
## 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
## Ficheros y documentación
- [mi_web](mi_web/)
- [web_Python_Total](web_Python_Total/)
[Documentación del curso](../doc_curso/16_aplicacion_web/)

View File

@ -0,0 +1,22 @@
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proyecto.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()

View File

@ -0,0 +1,16 @@
"""
ASGI config for proyecto project.
It exposes the ASGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/
"""
import os
from django.core.asgi import get_asgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proyecto.settings')
application = get_asgi_application()

View File

@ -0,0 +1,123 @@
"""
Django settings for proyecto project.
Generated by 'django-admin startproject' using Django 4.2.1.
For more information on this file, see
https://docs.djangoproject.com/en/4.2/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/4.2/ref/settings/
"""
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-mwsg_+h@r@!^_qelaxw8yxerofb2#$q)mmotw+fy6ns=_)ua0!'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'proyecto.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'proyecto.wsgi.application'
# Database
# https://docs.djangoproject.com/en/4.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# Password validation
# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/4.2/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.2/howto/static-files/
STATIC_URL = 'static/'
# Default primary key field type
# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

View File

@ -0,0 +1,22 @@
"""
URL configuration for proyecto project.
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/4.2/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]

View File

@ -0,0 +1,16 @@
"""
WSGI config for proyecto project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/4.2/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proyecto.settings')
application = get_wsgi_application()