CursosEmpresasBlogLiveConfPrecios

Debugging

Clase 14 de 21 • Curso de Python Intermedio: Comprehensions, Lambdas y Manejo de Errores

Clase anteriorSiguiente clase

Contenido del curso

Preparación antes de empezar

  • 1
    Algunas cosas que aprenderás sobre Python en este curso

    Algunas cosas que aprenderás sobre Python en este curso

    01:36 min
  • 2
    El Zen de Python

    El Zen de Python

    08:30 min
  • 3
    ¿Qué es la documentación?

    ¿Qué es la documentación?

    04:33 min

Entorno virtual

  • 4
    ¿Qué es un entorno virtual?

    ¿Qué es un entorno virtual?

    03:56 min
  • 5
    El primer paso profesional: creación de un entorno virtual

    El primer paso profesional: creación de un entorno virtual

    08:30 min
  • 6
    Instalación de dependencias con pip

    Instalación de dependencias con pip

    09:53 min
  • quiz Entorno virtual

Alternativa a los ciclos: comprehensions

  • 7
    Listas y diccionarios anidados

    Listas y diccionarios anidados

    12:32 min
  • 8
    List comprehensions

    List comprehensions

    07:39 min
  • 9
    Dictionary comprehensions

    Dictionary comprehensions

    06:00 min
  • quiz Alternativa a los ciclos: comprehensions

Conceptos avanzados de funciones

  • 10
    Funciones anónimas: lambda

    Funciones anónimas: lambda

    05:42 min
  • 11
    High order functions: filter, map y reduce

    High order functions: filter, map y reduce

    10:40 min
  • 12
    Proyecto: filtrando datos

    Proyecto: filtrando datos

    14:35 min
  • quiz Conceptos avanzados de funciones

Manejo de errores

  • 13
    Los errores en el código

    Los errores en el código

    08:54 min
  • 14
    Debugging

    Debugging

    Viendo ahora
  • 15
    Manejo de excepciones

    Manejo de excepciones

    10:53 min
  • 16
    Poniendo a prueba el manejo de excepciones

    Poniendo a prueba el manejo de excepciones

    04:12 min
  • 17
    Assert statements

    Assert statements

    07:55 min
  • quiz Manejo de errores

Manejo de archivos

  • 18
    ¿Cómo trabajar con archivos?

    ¿Cómo trabajar con archivos?

    06:52 min
  • 19
    Trabajando con archivos de texto en Python

    Trabajando con archivos de texto en Python

    12:27 min
  • quiz Manejo de archivos

Conclusión

  • 20
    Reto final: Juego del Ahorcado o Hangman Game

    Reto final: Juego del Ahorcado o Hangman Game

    03:43 min
  • 21
    Continúa tu camino profesional con Python

    Continúa tu camino profesional con Python

    02:17 min
  • Tomar el examen del curso
    • Royer Guerrero Pinilla

      Royer Guerrero Pinilla

      student•
      hace 5 años

      Si usas otro editor y no quieres tener que usar VS Code por algún motivo Python tiene un paquete preinstalado llamado pdb que se puede usar para hacer debuggin, en resumen y lo que yo uso mucho sobre todo cuando desarrollo con Flask o Django (Frameworks para desarrollo web usando Python) uso la siguiente línea de código para hacer un breakpoint en el código

      import pdb; pdb.set_trace()

      Puedes preguntarte al ver esta linea 😱 Punto y coma en python... pues si mi amigo se pueden usar y sirven para decirle cuando termina una línea de código y sigue otra, pero en la misma línea

      Eso lo que va a hacer es que cuando llegue a esto te liberara él tu consola una terminal interactiva para poder consultar tus variables y demás; para salir de la consola debes escribir la letra c y luego un enter

      Documentacion de pdb

        Raul Vazquez Montiel

        Raul Vazquez Montiel

        student•
        hace 5 años

        a partir te python 3.7 existe la funcion nativa breakpoint() que funciona igual sin necesidad de importar nada extra

        Royer Guerrero Pinilla

        Royer Guerrero Pinilla

        student•
        hace 5 años

        Esa no me la sabia

      Alejandro Cruz Martínez

      Alejandro Cruz Martínez

      student•
      hace 5 años

      Muy buena clase, muchas veces con este tipo errores los resolvía ejecutando esa pieza de código que estaba mal en papel y lápiz, de forma manual, para saber que valores tomaban mis variables y ver donde no estaba funcionando como yo quería.

      Nunca imagine que existiera algo así, sin duda me va a servir mucho de ahora en adelante.

        Andersson Candanosa

        Andersson Candanosa

        student•
        hace 5 años

        Yo metia prints intermedios para ver que valores iban tomando jaja. Esto es otra cosa.

        Alfonso Morán

        Alfonso Morán

        student•
        hace 5 años

        hahaha yo también usaba hacía eso y prints intermedios

      Josue Noha Valdivia

      Josue Noha Valdivia

      student•
      hace 5 años

      Debugging:

      • O depuración es una herramienta que traen varios editores de código con el objetivo de solucionar nuestros errores de lógica. Revisemos la herramienta debugging de VSCode
      • En este entorno podemos acceder a funcionalidades como:
        • pause → permite pausar la ejecución del programa
        • step over → permite avanazr un solo paso en el programa
        • step in → igresamos a un bloque secundario del programa (funciones)
        • step out → salimos del bloque secundario
        • restart → reinicia el programa
        • stop → detiene el programa
      • Además podemos generar breakpoints, que son puntos en los que el programa se detendrá para ayudarnos a depurar el código

      Nota:

      • Existen herramientas de debugging propias de python como el módulo pdb o los breakpoints (a partir de python 3.7)
        Eber Laurente Lliuyacc

        Eber Laurente Lliuyacc

        student•
        hace 5 años

        Buen resumen 🤘

        Josue Noha Valdivia

        Josue Noha Valdivia

        student•
        hace 5 años

        Gracias

      Esneider Vélez Peña

      Esneider Vélez Peña

      student•
      hace 4 años

      Pueden crear un atajo en VS code de la función run y el if para no tener que escribir toda la estructura básica sino que el editor te lo ponga directamente de la siguiente manera:

      • Abres una nueva terminal en VS code (Terminal-> New Terminal)
      • Dentro de la consola presionan el shortcut (Ctr + Shift + P)
      • El anterior comando los lleva a la barra de búsqueda con el símbolo > (en caso de que no se los ponga el editor, lo ponen ustedes), ahí escriben: Snippets
      • Seleccionan la opción que dice: Preferences: Configure User Snippets
      • Al seleccionar esa opción les aparecerán todos los lenguajes que soporta VS code y escriben: python y seleccionan la opción que les salga
      • Al seleccionarla se les abrirá un documento python.json
      • Dentro del archivo, después de los comentarios que hay, ponen este código:
      "Insertar formato de entrada":{ "prefix": "_run", "body": [ "def run():", " $0", "", "", "", "if __name__=='__main__':", " run()" ], "description": "Add the entring point" }

      Se debe ver así:

      snippet.png

      Yo le puse como "prefix": "_run", pero ustedes le pueden poner el que deseen, ese va a ser el atajo con el que van a llamar el fragmento de código.

      • Guardan el archivo

      Y ya, de ahí en adelante solo ponen en los archivos .py: _run y les sale esa estructura para que les ahorre tiempo :D, así se vería en el archivo .py:

      snippet2.png
      snippet3.png
      Y pueden hacer así tanto de forma global como para cada lenguaje de la misma manera.

        Julian Castro Pulgarin

        Julian Castro Pulgarin

        student•
        hace 4 años

        ¡Super útil! Muchas gracias Esneider :D

        Renato Agustín Lagos Albornoz

        Renato Agustín Lagos Albornoz

        student•
        hace 4 años

        muchas gracias

      Fernando Lopez

      Fernando Lopez

      student•
      hace 5 años

      mi aporte con list comprehension

      def divisors(num): divisors = [i for i in range(1, num +1) if num % i == 0] return divisors def run(): num = int(input('Ingresa un numero: ')) print(divisors(num)) print("Termino") if __name__ == '__main__': run()
        Moisés Manuel Morín Hevia

        Moisés Manuel Morín Hevia

        student•
        hace 5 años

        Muy limpio tu código !

        Javier Suárez Meerhoff

        Javier Suárez Meerhoff

        student•
        hace 4 años

        gracias!

      Andersson Candanosa

      Andersson Candanosa

      student•
      hace 5 años
        Moisés Manuel Morín Hevia

        Moisés Manuel Morín Hevia

        student•
        hace 5 años

        xD ambos

        Howerd Sarmiento

        Howerd Sarmiento

        student•
        hace 4 años

        jajajaajaj

      Erik Alejandro Garcia Duarte

      Erik Alejandro Garcia Duarte

      student•
      hace 5 años
      divisors = lambda num: [x for x in range(1, num + 1) if num % x == 0]
        Lucas Sanchez

        Lucas Sanchez

        student•
        hace 5 años

        Lo había utilizado con listcomprehension pero leí tu código y recordé las funciones anónimas para acortar más el código Gracias por tu aporte!

        José Juan Pineda

        José Juan Pineda

        student•
        hace 5 años

        Me regresa None como resultado, podrías compartir el código completo por favor, no sé donde está mi error. Entiendo que devuelve un lambda valor de True y Falso. Pero cómo le hago para imprimir la lista bien??

        Ayuda y saludos!

      Usuario anónimo

      Usuario anónimo

      user•
      hace 5 años

      ✨ El debugging nos permite detectar errores de nuestros proyectos.

      Jefferson Marchan

      Jefferson Marchan

      student•
      hace 5 años

      Código con list comprehension:

      def divisors(num): divisors = [i for i in range(1, num + 1) if num % i == 0] return divisors

      Código con high order function y lambda:

      def divisors(num): divisors = list(filter(lambda i: num % i == 0, range(1, num +1))) return divisors
        Moisés Manuel Morín Hevia

        Moisés Manuel Morín Hevia

        student•
        hace 5 años

        Thanks.

      Alfonso Morán

      Alfonso Morán

      student•
      hace 5 años

      Y yo haciendo debugging a mano con papel y calculadora o excel. Que buena herramienta ofrece Visual Studio Code, definitivamente la empezaré a usar.

        Carlos Guzman

        Carlos Guzman

        student•
        hace 5 años

        Todos los IDEs que conozco traen para hacer debuggin

      Renato Renzo Luna Herrera

      Renato Renzo Luna Herrera

      student•
      hace 4 años

      10 minutos para darme cuenta que el error estaba en el indentado

        Pablo Ezequiel Seitler

        Pablo Ezequiel Seitler

        student•
        hace 4 años

        Utilizando un IDE eso normalmente es fácil de detectar. No sé como será en VS Code pero PyCharm enseguida te empieza a gritar si cualquier parte de tu código no sigue PEP8 (4 espacios de sangria, 2 espacios entre declaración de funciones, variables separadas por underscore, etc...)

        Ruben Dario Hernandez Centeno

        Ruben Dario Hernandez Centeno

        student•
        hace 4 años

        Para esos problemas te sirve mucho PyLint

      Gabriel Missael Barco

      Gabriel Missael Barco

      student•
      hace 4 años

      Debugging.

      • Una de las técnicas para resolver errores de lógica es debugging o depuración. VSCode tiene esto como una de sus funcionalidades. 👀
      • Cuando hacemos debugging, podemos poner pausa a nuestro programa e ir línea por línea viendo que sucede. Podemos avanzar en las líneas de código y, en caso que estemos sobre una línea que llama una función, podemos optar por entrar en esta 🤯.
      • Existen break points o puntos de quiebre 🛑 que nos sirve para detener nuestro programa en un punto específico, donde creamos que nuestro programa falla.
      Alex Bossi

      Alex Bossi

      student•
      hace 5 años

      Profesor digno de una de las mejores universidades, Platzi le acertó al elegir a Facundo como profesor, y aun mas al asignar que enseñe algo que a muchos les suele resultar complicado y frustrante en algunas situaciones si no se enseña con claridad

      Luis Rivero

      Luis Rivero

      student•
      hace 4 años

      Si utilizas VS code puedes ir a ajustes (barra izquierda abajo) , User Snippets y buscar el archivo llamado python.json, ahí puedes pegar esto dentro de las llaves:

      "base": { "prefix": "py:base", "body": [ "def run():", " pass", "", "", "if __name__ == '__main__':", " run()" ] }

      Guardas el archivo y ahora cuando vayas a comenzar a crear un nuevo archivo de python puedes tener la estructura base con el siguiente comando: py:base. Además puedes crear tus propios snippets dentro de ese mismo archivo.

        Ruben Dario Hernandez Centeno

        Ruben Dario Hernandez Centeno

        student•
        hace 4 años

        Que genial! Excelente aporte

      Sergio Orejarena Rueda

      Sergio Orejarena Rueda

      student•
      hace 5 años

      Si estás usando PyCharm, simplemente debes de dar clic derecho sobre el archivo que estás manejando y selecionar la opción de Debug y posteriormente estas serían las funciones de las que se hablaba en la clase: .

      pycharm.png
      .
      debug.png

        Luis Dotto

        Luis Dotto

        student•
        hace 4 años

        No puedo seleccionar un grupo de celdas y debuggear??

      Jose Colmenares

      Jose Colmenares

      student•
      hace 4 años

      Utilizo VSCode para programar. Sin embargo, tengo compañeros de trabajo que utilizan PyCharm y tienen un debugger para Python superior al de Code.

      Vicki Esther Avola

      Vicki Esther Avola

      student•
      hace 5 años

      Yo no pude hacer el ejercicio de Debuggin me sale siempre este error: Variable ${file] can not be resolved. Please open an editor

      El archivo launch.json contiene lo siguiente: { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Python: File corrente", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal" } ] }

        Jaime Andres Moreno Ramos

        Jaime Andres Moreno Ramos

        student•
        hace 5 años

        Mismo error y al tratar de correr el Run and Debug no puedo poner pausa en el proceso. Quedo pendiente si alguien conoce solución

        Bryan David Rosas Rojas

        Bryan David Rosas Rojas

        student•
        hace 4 años

        tengo el mismo error, quedo atento si alguien encuentra una solución

      Wilmer Felipe Pungo

      Wilmer Felipe Pungo

      student•
      hace 4 años

      No es de Python, pero se entiende

      Sergio Paredes

      Sergio Paredes

      student•
      hace 4 años

      Python tutor nos permite ver paso a paso como se comporta el código y ir viendo los cambios en funciones y variables para llevar seguimiento de los programas, le colocare un acortador por que la web no cuenta con SSL

      https://bit.ly/3glWX3L

      Miguel Andres Rendon Reyes

      Miguel Andres Rendon Reyes

      student•
      hace 5 años

      VS code nos resalta con color amarillo, en dónde está parado nuestro programa (si le pusimos pausa) por lo que, en caso de ser una función, la línea en dónde se encuentra parada nuestra ejecución entonces, podemos revisar con más detalle aquella función.

    Escuelas

    • Desarrollo Web
      • Fundamentos del Desarrollo Web Profesional
      • Diseño y Desarrollo Frontend
      • Desarrollo Frontend con JavaScript
      • Desarrollo Frontend con Vue.js
      • Desarrollo Frontend con Angular
      • Desarrollo Frontend con React.js
      • Desarrollo Backend con Node.js
      • Desarrollo Backend con Python
      • Desarrollo Backend con Java
      • Desarrollo Backend con PHP
      • Desarrollo Backend con Ruby
      • Bases de Datos para Web
      • Seguridad Web & API
      • Testing Automatizado y QA para Web
      • Arquitecturas Web Modernas y Escalabilidad
      • DevOps y Cloud para Desarrolladores Web
    • English Academy
      • Inglés Básico A1
      • Inglés Básico A2
      • Inglés Intermedio B1
      • Inglés Intermedio Alto B2
      • Inglés Avanzado C1
      • Inglés para Propósitos Específicos
      • Inglés de Negocios
    • Marketing Digital
      • Fundamentos de Marketing Digital
      • Marketing de Contenidos y Redacción Persuasiva
      • SEO y Posicionamiento Web
      • Social Media Marketing y Community Management
      • Publicidad Digital y Paid Media
      • Analítica Digital y Optimización (CRO)
      • Estrategia de Marketing y Growth
      • Marketing de Marca y Comunicación Estratégica
      • Marketing para E-commerce
      • Marketing B2B
      • Inteligencia Artificial Aplicada al Marketing
      • Automatización del Marketing
      • Marca Personal y Marketing Freelance
      • Ventas y Experiencia del Cliente
      • Creación de Contenido para Redes Sociales
    • Inteligencia Artificial y Data Science
      • Fundamentos de Data Science y AI
      • Análisis y Visualización de Datos
      • Machine Learning y Deep Learning
      • Data Engineer
      • Inteligencia Artificial para la Productividad
      • Desarrollo de Aplicaciones con IA
      • AI Software Engineer
    • Ciberseguridad
      • Fundamentos de Ciberseguridad
      • Hacking Ético y Pentesting (Red Team)
      • Análisis de Malware e Ingeniería Forense
      • Seguridad Defensiva y Cumplimiento (Blue Team)
      • Ciberseguridad Estratégica
    • Liderazgo y Habilidades Blandas
      • Fundamentos de Habilidades Profesionales
      • Liderazgo y Gestión de Equipos
      • Comunicación Avanzada y Oratoria
      • Negociación y Resolución de Conflictos
      • Inteligencia Emocional y Autogestión
      • Productividad y Herramientas Digitales
      • Gestión de Proyectos y Metodologías Ágiles
      • Desarrollo de Carrera y Marca Personal
      • Diversidad, Inclusión y Entorno Laboral Saludable
      • Filosofía y Estrategia para Líderes
    • Diseño de Producto y UX
      • Fundamentos de Diseño UX/UI
      • Investigación de Usuarios (UX Research)
      • Arquitectura de Información y Usabilidad
      • Diseño de Interfaces y Prototipado (UI Design)
      • Sistemas de Diseño y DesignOps
      • Redacción UX (UX Writing)
      • Creatividad e Innovación en Diseño
      • Diseño Accesible e Inclusivo
      • Diseño Asistido por Inteligencia Artificial
      • Gestión de Producto y Liderazgo en Diseño
      • Diseño de Interacciones Emergentes (VUI/VR)
      • Desarrollo Web para Diseñadores
      • Diseño y Prototipado No-Code
    • Contenido Audiovisual
      • Fundamentos de Producción Audiovisual
      • Producción de Video para Plataformas Digitales
      • Producción de Audio y Podcast
      • Fotografía y Diseño Gráfico para Contenido Digital
      • Motion Graphics y Animación
      • Contenido Interactivo y Realidad Aumentada
      • Estrategia, Marketing y Monetización de Contenidos
    • Desarrollo Móvil
      • Fundamentos de Desarrollo Móvil
      • Desarrollo Nativo Android con Kotlin
      • Desarrollo Nativo iOS con Swift
      • Desarrollo Multiplataforma con React Native
      • Desarrollo Multiplataforma con Flutter
      • Arquitectura y Patrones de Diseño Móvil
      • Integración de APIs y Persistencia Móvil
      • Testing y Despliegue en Móvil
      • Diseño UX/UI para Móviles
    • Diseño Gráfico y Arte Digital
      • Fundamentos del Diseño Gráfico y Digital
      • Diseño de Identidad Visual y Branding
      • Ilustración Digital y Arte Conceptual
      • Diseño Editorial y de Empaques
      • Motion Graphics y Animación 3D
      • Diseño Gráfico Asistido por Inteligencia Artificial
      • Creatividad e Innovación en Diseño
    • Programación
      • Fundamentos de Programación e Ingeniería de Software
      • Herramientas de IA para el trabajo
      • Matemáticas para Programación
      • Programación con Python
      • Programación con JavaScript
      • Programación con TypeScript
      • Programación Orientada a Objetos con Java
      • Desarrollo con C# y .NET
      • Programación con PHP
      • Programación con Go y Rust
      • Programación Móvil con Swift y Kotlin
      • Programación con C y C++
      • Administración Básica de Servidores Linux
    • Negocios
      • Fundamentos de Negocios y Emprendimiento
      • Estrategia y Crecimiento Empresarial
      • Finanzas Personales y Corporativas
      • Inversión en Mercados Financieros
      • Ventas, CRM y Experiencia del Cliente
      • Operaciones, Logística y E-commerce
      • Gestión de Proyectos y Metodologías Ágiles
      • Aspectos Legales y Cumplimiento
      • Habilidades Directivas y Crecimiento Profesional
      • Diversidad e Inclusión en el Entorno Laboral
      • Herramientas Digitales y Automatización para Negocios
    • Blockchain y Web3
      • Fundamentos de Blockchain y Web3
      • Desarrollo de Smart Contracts y dApps
      • Finanzas Descentralizadas (DeFi)
      • NFTs y Economía de Creadores
      • Seguridad Blockchain
      • Ecosistemas Blockchain Alternativos (No-EVM)
      • Producto, Marketing y Legal en Web3
    • Recursos Humanos
      • Fundamentos y Cultura Organizacional en RRHH
      • Atracción y Selección de Talento
      • Cultura y Employee Experience
      • Gestión y Desarrollo de Talento
      • Desarrollo y Evaluación de Liderazgo
      • Diversidad, Equidad e Inclusión
      • AI y Automatización en Recursos Humanos
      • Tecnología y Automatización en RRHH
    • Finanzas e Inversiones
      • Fundamentos de Finanzas Personales y Corporativas
      • Análisis y Valoración Financiera
      • Inversión y Mercados de Capitales
      • Finanzas Descentralizadas (DeFi) y Criptoactivos
      • Finanzas y Estrategia para Startups
      • Inteligencia Artificial Aplicada a Finanzas
      • Domina Excel
      • Financial Analyst
      • Conseguir trabajo en Finanzas e Inversiones
    • Startups
      • Fundamentos y Validación de Ideas
      • Estrategia de Negocio y Product-Market Fit
      • Desarrollo de Producto y Operaciones Lean
      • Finanzas, Legal y Fundraising
      • Marketing, Ventas y Growth para Startups
      • Cultura, Talento y Liderazgo
      • Finanzas y Operaciones en Ecommerce
      • Startups Web3 y Blockchain
      • Startups con Impacto Social
      • Expansión y Ecosistema Startup
    • Cloud Computing y DevOps
      • Fundamentos de Cloud y DevOps
      • Administración de Servidores Linux
      • Contenerización y Orquestación
      • Infraestructura como Código (IaC) y CI/CD
      • Amazon Web Services
      • Microsoft Azure
      • Serverless y Observabilidad
      • Certificaciones Cloud (Preparación)
      • Plataforma Cloud GCP

    Platzi y comunidad

    • Platzi Business
    • Live Classes
    • Lanzamientos
    • Executive Program
    • Trabaja con nosotros
    • Podcast

    Recursos

    • Manual de Marca

    Soporte

    • Preguntas Frecuentes
    • Contáctanos

    Legal

    • Términos y Condiciones
    • Privacidad
    • Tyc promociones
    Reconocimientos
    Reconocimientos
    Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
    Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
    Logo reconocimientoPrimera Startup EdTech · 2018
    Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
    Logo reconocimientoCEO Mejor Emprendedor del año · 2024
    De LATAM conpara el mundo
    YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads