En esta ocasión, os traigo un curso muy grande de Python.
Importante, el curso es TOTALMENTE GRATUITO. He decidido financiarlo con anuncios, que aunque no dan gran cosa, por lo menos, puede acceder mucha gente que no puede permitírselo y la verdad, aunque dedico muchas horas y monetariamente no compensa, me satisface ver vuestros comentarios de que vais aprendiendo, conseguís trabajo, aprobáis exámenes, etc.
Máster en Python, es un curso que empecé hace algún tiempo pensando en todos aquellos cursos que aunque son bastante completos, les falta llegar a algo más.
Características del curso de Python
Cada capítulo incluye:
- La clase en vídeo.
- Todos los apuntes sobre lo explicado en la clase.
- Todo el código utilizado en el vídeo.
- Muchos de los capítulos incluyen ejercicios resueltos.
- También se realizan constantemente proyectos con todo lo aprendido en el curso.
- Caja de comentarios para dudas.
- Vídeo respuestas. Cuando vea que me dejáis una duda que es importante, en lugar de contestaros por comentario, lo haré con un pequeño vídeo que incluiré en el curso.
- Pequeños quizzes (preguntas sueltas tipo opción a, b, c o d).
- Tests finales de módulos (aún no incluidos). Añadiré diversos tests para cada sección del curso. Así podréis tener una evaluación aparte de los ejercicios.
Requisitos para realizar el curso de Python
- PC con internet.
- Conocimientos básicos de usuario de PC.
Nada más.
El curso lo haré totalmente desde cero, de forma que no requiere que sepas nada de programación.
La dificultad irá aumentando gradualmente.
Este curso es para quien tenga ganas de verdad de esforzarse y aprender de todo con Python, será largo, pero valdrá la pena.
Contenido del curso
Te dejo aquí el contenido del curso, así podrás ir echando un vistazo a lo que ya tengo subido.
Cada capítulo es bastante extenso. Dentro, de cada uno, tienes otra tabla de contenidos para ver todo lo que lleva.
El curso ya es enorme y aún no tiene ni un 15% de todo lo que voy a hacer.
Módulo 1: Python básico
- Variables, salida y entrada de datos.
- Tipos de datos, conversiones, operadores y más.
- Los condicionales if, elif, else y match.
- Listas y tuplas.
- Los bucles for y while.
- Las funciones.
- Los diccionarios y sets.
- Bonus: Pasos a seguir para crear apps de interfaz gráfica.
- Bonus: 6 extensiones de Visual Studio Code para Python.
Módulo 2: Introducción a Tkinter
Módulo 3: Funciones lambda
Módulo 4: Iniciación a la programación orientada a objetos
Módulo 5: Iniciación a los eventos con Tkinter
Módulo 6: Más cosas sobre los strings, pass y continue
Módulo7: Más temas con Tkinter
- El manejo de imágenes con Tkinter.
- Iniciación a los estilos y marcos de Tkinter.
- Los Radiobutton y las variables de control de Tkinter.
- Pregunta de alumno: ¿Puedo usar grid y pack a la vez en Tkinter?
- Duda de alumnos: problemas con el flujo de ejecución y la reutilización de variables.
- Pregunta de alumno: ¿Cómo se configura una tecla para ejecutar directamente archivos de Python con VSCode?
Módulo 8: Iniciación a la programación modular
Módulo 9: Más cosas sobre Tkinter y seguridad informática con Python
Módulo 10: Python y MySQL
Módulo 11: Programación orientada a objetos y funciones avanzadas
Módulo 12: Gran proyecto de bases de datos MySQL con Python
- Crear aplicación gráfica con Python, MySQL y Tkinter – Parte 1.
- Crear aplicación gráfica con Python, MySQL y Tkinter – Parte 2.
- Crear aplicación gráfica con Python, MySQL y Tkinter – Parte 3.
- Crear aplicación gráfica con Python, MySQL y Tkinter – Parte 4.
- Crear aplicación gráfica con Python, MySQL y Tkinter – Parte 5.
- Manejo de horas y fechas con Python.
- Crear copias de seguridad MySQL con hora y fecha.
- String slicing.
- Crear y eliminar tablas MySQL desde Python.
- El manejo de excepciones.
- MySQL connector cursor fetchall, fetchone y fetchmany.
- Cerrar la conexión y el cursor con el servidor MySQL desde Python.
- Método decorador para abrir y cerrar la conexión con el servidor MySQL.
- Métodos para obtener tablas y columnas MySQL.
- Decoradores condicionales y expresiones ternarias.
- Método para insertar registros en tablas MySQL desde Python.
- Métodos para eliminar y actualizar registros MySQL desde Python.
- ¡Empezamos con la interfaz gráfica! – Ventana de login.
- Introducción a CustomTkinter para la INTERFAZ GRÁFICA.
- Ventana de login con CustomTkinter.
- Ventanas secundarias TopLevel con Tkinter y CustomTkinter.
- Bucle autogenerador de botones y destruir ventanas con Tkinter y CustomTkinter.
- Creando la clase para funciones del programa.
- Creación de una ventana gráfica para consultas SQL.
- Creación de una ventana gráfica para mostrar y buscar bases de datos MySQL.
- Creación de menús superiores con Tkinter y CustomTkinter.
Módulo 13: Introducción al Backend
Módulo 14: Django
- Introducción a Django.
- Creando una app de varias URL con Django.
- Herramientas de desarrollo del navegador con Django.
- El uso de plantillas de Django.
- Introducción a los modelos de Django.
- Creación de modelos de Django y tipos de campos.
- Crear un formulario de registro de usuarios con Django.
- ¿Cómo utilizar CSS con Django?
- Crear batch para tareas rutinarias de Django.
- ¿Cómo utilizar JavaScript con Django?
Muchas gracias, en todos los momentos, todo el tiempo y siempre, Ayudas mucho de verdad.
Hola Quique.
Es la primera vez que escribo.
En la parte de menú superior realizaste una adaptación a customtkinter y comentaste que realizáramos nuestra adaptación.
Esta es la que yo realice, me dice que te parece?.
import customtkinter as ctk
import tkinter as tk
# Apariencia de las ventanas
ctk.set_appearance_mode(«system»)
ctk.set_default_color_theme(«blue»)
op_tema = ctk.get_appearance_mode()
if op_tema == ‘Dark’:
opciones = dict(background=’#2b2b2b’,
foreground=’white’,
activeforeground=’black’,
activebackground=’#ababab’)
if op_tema == ‘Light’:
opciones = dict(background=’#dbdbdb’,
foreground=’black’,
activeforeground=’white’,
activebackground=’#ababab’)
# Se crea la ventana de CustomTkinter
root = ctk.CTk()
# Se le da un título
root.title(«Prueba menu con customtkinter»)
# Marco para contener el menú superior
menu_frame = ctk.CTkFrame(root)
menu_frame.pack(side=’top’, fill=’x’)
# Se crea el botón de Menú
archivo = tk.Menubutton(menu_frame,
text=’Archivo’,
**opciones)
# Se crea el botón de Menú
edicion = tk.Menubutton(menu_frame,
text=’Edición’,
**opciones)
# Se crea el menú
menu_archivo = tk.Menu(archivo, tearoff=0)
# Se crea el menú
menu_edicion = tk.Menu(edicion, tearoff=0)
# Añade una opción al menú desplegable
menu_archivo.add_command(label=’Imprimir Saludo’,
command=lambda: print(‘Hello PC Master!’),
**opciones)
# Crea un nuevo menú para la cascada
cascada = tk.Menubutton(menu_edicion,
text=’Cascada’,
**opciones)
# Se crea el menú
menu_cascada = tk.Menu(cascada, tearoff=0)
cascada.config(menu=menu_cascada)
# Se crea una cascada dentro del menu de edición
menu_edicion.add_cascade(label=»Opciones», menu=menu_cascada,
**opciones)
# Agrega opciones a la cascada
menu_cascada.add_command(label=»Opción 1″,
command=lambda: print(«Opción 1 seleccionada»),
**opciones)
menu_cascada.add_command(label=»Opción 2″,
command=lambda: print(«Opción 2 seleccionada»),
**opciones)
menu_cascada.add_command(label=»Opción 3″,
command=lambda: print(«Opción 3 seleccionada»),
**opciones)
# Asigna el menú desplegable al Menubutton
archivo.config(menu=menu_archivo)
# Posiciona el Menubutton dentro del Frame
archivo.pack(side=’left’)
# Asigna el menú desplegable al Menubutton
edicion.config(menu=menu_edicion)
# Posiciona el Menubutton dentro del Frame
edicion.pack(side=’left’)
# Asigna el menú desplegable al Menubutton
cascada.config(menu=menu_cascada)
ctk.CTkFrame(root, width=300, height=300).pack(padx=10,pady=10)
root.mainloop()
Gracias por todo.
excelente trabajo, porfa se que es mucho y cuesta editar, y he terminado el curso, hasta el capitulo 66, imagino que faltan y aun no los has subido, o si ya están por favor como acceder a ellos.
saludos y gracias por esta grandiosa metodología, excelente trabajo.
Muchas gracias por tu magnífica labor. Hace tiempo que quería manejar tablas desde Python y este es el mejor curso que he conocido, después de muchas búsquedas.
Repito: ¡Muchas gracias!
Gracias este maravilloso curso
bravisimo!!!!!!!!!!
me pongo a ello deesde ya
gracias por el esfuerzo y la dedicacion
Es, un trabajo maravilloso, admiro tu gran conocimiento, espero la próxima clase
Muchas gracias maestro sos grande.
Siguiendo tus cursos he logrado terminar mi primer proyecto de programación. Es un sistema para operar un estacionamiento, en Windows, programado con Python (sin POO), Tkinter y guardando la información en MariaDB. Prácticamente lo único que faltaría para hacerlo funcional sería imprimir los tickets (o boletos) en una impresora térmica. La idea es que una vez generada la información, y después de haber sido guardada en la base de datos, se imprima un ticket directamente desde Python a la impresora, sin crear un PDF o un archivo de texto como paso intermedio. ¿Tendrás algo sobre este tema?, ya que al buscar en tu página y en you tube casí no he encontrado nada al respecto.
Como siempre mi agradecimiento, a tu generosidad educativa. Cambias la vida de las personas.
Hiciste un hermoso trabajo, eh pagado por cursos que no superan este. Muchas gracias, lo voy a recomendar cada vez que pueda
Hola, manejar archivos y excepciones, habrá un apartado de eso? Muchas gracias!!
El mejor curso de la red. Dios te bendiga. Cambias la vida de las personas que no pueden pagar por su educacion formal.
Excelente, muchas gracias
Acabo de darme cuenta que el hipervínculo del punto 15 del modulo 12 no dirige a la pagina adecuada si no que vuelve a dirigir a la pagina del punto 14 del mismo modulo, además igual que te comentaba en el comentario este se actualiza en esta pestaña en vez de generar una pestaña nueva para la llamada.
Quique, en el hipervínculo del punto 14 del modulo 12 te saca la nueva dirección en esta misma pestaña en vez de abrir una nueva, échale un ojo porque está distinto en todo el resto de puntos. Puedes borrar este comentario cuando lo revises 😉
Gracias por el aviso. Lo acabo de modificar.
ahora lo que no está bien es el embebido del youtube en el punto 15, fijate que sale el link en vez del video embebido
Oro puro
Gracias!