# Cursos de python 馃殌
Este repositorio contiene los apuntes tomados en diversos cursos de python reflejados en la siguiente tabla:
| Curso | 脥ndice repo | Duraci贸n personal | Duraci贸n de v铆deos | Fuente original |
| -----------: | :-------------------------------------------------------- | :---------------: | :----------------: | :------------------------------------------------------------------------------------------------------------------------------ |
| Python total | [contenidos](#铆ndice-de-los-contenidos-de-python-total-馃搸) | 200 horas | 30 horas | [Escuela Directa](https://www.udemy.com/course/python-total) |
| HolaMundo | [contenidos](#铆ndice-de-los-contenidos-de-holamundo-馃搸) | 5 horas | 15 horas | [Aprende python ahora! Curso completo e intensivo desde cero](https://www.youtube.com/watch?v=tQZy0U8s9LY&ab_channel=HolaMundo) |
Las pr谩cticas y ejercicios aqu铆 contenidos son los que hice mediante los cursos mencionados y por investigaci贸n propia, con mucho caf茅 e insomnio. Realmente, 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 EMHO me parecieron relevantes. Teniendo un documento, a mi parecer, tan completo y entendiendo que el conocimiento debe ser libre se decidi贸 compartirlos. Por eso, **cualquier error puedes abrir un issue o contactar conmigo**.
Si te parece 煤til este documento puedes agradecerlo a trav茅s de las v铆as de contacto de la web https://vergaracarmona.es o [inv铆tandome a un caf茅](#inv铆tame-a-un-caf茅-鈽曪笍) 鈽曪笍
Recuerda,
> *"Quien se corta su propia le帽a se calienta dos veces"*
---
# Qu茅 es python seg煤n chatGPT 馃
Python es un lenguaje de programaci贸n interpretado y de alto nivel. Fue creado por Guido van Rossum y lanzado por primera vez en 1991. Python se destaca por su sintaxis clara y legible, lo que lo hace muy accesible tanto para principiantes como para programadores experimentados.
Una de las caracter铆sticas distintivas de Python es su enfoque en la legibilidad del c贸digo, lo que se conoce como el principio "bello es mejor que feo" (beautiful is better than ugly). Esto se logra mediante el uso de una sintaxis clara y estructurada que facilita la comprensi贸n y el mantenimiento del c贸digo.
Python es un lenguaje multiprop贸sito, lo que significa que se puede utilizar para una amplia variedad de aplicaciones, como desarrollo web, an谩lisis de datos, inteligencia artificial, automatizaci贸n de tareas, desarrollo de juegos y m谩s. Tiene una amplia biblioteca est谩ndar que proporciona m贸dulos y funciones para realizar diversas tareas comunes, lo que facilita el desarrollo de aplicaciones sin tener que escribir todo desde cero.
Una de las razones por las que Python ha ganado popularidad es su comunidad activa y su ecosistema de paquetes. Existen numerosas bibliotecas y marcos de trabajo desarrollados por la comunidad que ampl铆an las capacidades de Python en diferentes 谩reas, como Django para desarrollo web, NumPy y pandas para an谩lisis de datos, TensorFlow y PyTorch para aprendizaje autom谩tico, entre otros.
Adem谩s, Python es conocido por ser un lenguaje f谩cil de aprender y utilizar. Su sintaxis intuitiva y legible permite a los programadores escribir c贸digo de manera m谩s r谩pida y eficiente, lo que reduce el tiempo de desarrollo y facilita la colaboraci贸n en proyectos.
En resumen, Python es un lenguaje de programaci贸n de alto nivel, interpretado y f谩cil de aprender que se utiliza ampliamente en una variedad de aplicaciones, desde desarrollo web hasta an谩lisis de datos e inteligencia artificial. Su enfoque en la legibilidad del c贸digo y su comunidad activa lo convierten en una elecci贸n popular entre los programadores.
## Tabla de comparaci贸n con otros lenguajes de programaci贸n 馃搳
| Caracter铆stica | Python | Java | C++ | JavaScript |
| --------------------- | ------------------------------------------------ | ---------------------------------------- | --------------------------------------- | ----------------------------------------- |
| Paradigma | Multiparadigma | Orientado a objetos, estructurado | Multiparadigma | Multiparadigma |
| Tipado | Din谩mico | Est谩tico | Est谩tico | Din谩mico |
| Sintaxis | Concisa y legible | Verbosa | Compleja | Flexible |
| Uso principal | Desarrollo web, ciencia de datos, automatizaci贸n | Desarrollo de aplicaciones empresariales | Desarrollo de sistemas, videojuegos | Desarrollo web, aplicaciones interactivas |
| Bibliotecas | Amplia variedad | Amplia variedad | Amplia variedad | Amplia variedad |
| Orientaci贸n a objetos | S铆 | S铆 | S铆 | S铆 |
| Rendimiento | Moderado | Alto | Alto | Moderado |
| Comunidad y soporte | Gran comunidad, abundante documentaci贸n | Gran comunidad, abundante documentaci贸n | Gran comunidad, abundante documentaci贸n | Gran comunidad, abundante documentaci贸n |
| Curva de aprendizaje | Baja | Moderada | Alta | Baja |
Esta tabla solo proporciona una comparaci贸n general entre los lenguajes y que cada uno tiene sus propias fortalezas y 谩reas de aplicaci贸n espec铆ficas.
---
# **脥ndice de los contenidos de python-total** 馃搸
- [D铆a 1 - Programa un creador de nombres](python-total/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](python-total/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](python-total/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"](python-total/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"](python-total/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](python-total/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](python-total/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](python-total/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](python-total/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"](python-total/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](python-total/dia_11/README.md)
- 11.1. - Extraer elementos de una clase
- [D铆a 12 - Programa un gestor de restaurantes](python-total/dia_12/README.md)
- [D铆a 13 - Programa un asistente de voz](python-total/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](python-total/dia_14/README.md)
- 14.1. - Bibliotecas
- [D铆a 15 - Programa un modelo de machine learning](python-total/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](python-total/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](python-total/dia_17/README.md)
- 17.1. - Bibliotecas
---
# **脥ndice de los contenidos de HolaMundo** 馃搸
- [Descripci贸n de los contenidos](HolaMundo/README.md)
- 01_calculadora.py
- 02_if02.py
- 02_if.py
- 03_if_ternario.py
- 04_operaciones_corto_circuito.py
- 05_cadena_comparadores.py
- 06_loop_anidado.py
- 07_calculadoraHolaMundo.py
- 07_calculadora.py
- 08_funciones.py
- 09_args_indefinidos.py
- 10_palindromo.py
- 11_listas.py
- 12_listas_compresion_map_filter.py
- 13_tuplas_sets.py
- 14_diccionarios.py
---
## Licencia 馃搫
- [Licencia Creative Commons Atribuci贸n-CompartirIgual 4.0 Internacional](LICENSE)
---
# Agradecimientos 馃巵
Por supuesto, quiero agradecer a [Federico Garay](https://ar.linkedin.com/in/fedegaray) y a [Nicol谩s Sch眉rmann](https://www.linkedin.com/in/nicolasschurmann/) (隆Cuidao con el [teclado](https://youtu.be/y0T8UqBkawQ) que se gasta!) por los cursos en concreto que he realizado con ellos y por todo el contenido libre que en sus webs y canales de RRSS.
Tambi茅n a todos los compas que me han apoyado en este camino.
[![Solo no puedes, con amigos s铆. 馃](https://youtu.be/Ds7tje_Y0CM)](hhttps://youtu.be/Ds7tje_Y0CM)
# Inv铆tame a un caf茅 鈽曪笍