WEBVTT

00:00.360 --> 00:07.160
Hablemos de un tema muy importante si quieres ser un gran programador, y eso se

00:07.710 --> 00:13.290
llama depuración, ves que nadie escribe programas perfectos, honestamente es imposible.

00:13.500 --> 00:15.120
Siempre vamos a cometer errores.

00:15.120 --> 00:17.270
Y los programas se mejoran constantemente.

00:17.820 --> 00:25.350
Mejoramos constantemente nuestro código a medida que encontramos más y más errores porque los programas están llenos de errores o lo que

00:25.380 --> 00:28.590
llamamos errores o excepciones en tiempo de ejecución.

00:28.590 --> 00:36.810
Cuando el código se está ejecutando, verá que el acto de encontrar y eliminar estos errores o errores de nuestro código

00:37.020 --> 00:38.610
se llama depuración.

00:39.120 --> 00:46.500
Y una gran parte de nuestro tiempo como programadores es depurar código, ya sea nuestro propio código o el código de otras personas

00:46.500 --> 00:49.410
y averiguar, oye, ¿cómo es que esto no funciona?

00:50.070 --> 00:54.540
Y los desarrolladores senior son realmente buenos depurando errores.

00:55.520 --> 01:01.370
Así que hablemos en este video sobre algunas de mis recomendaciones para la depuración y cuáles son algunas

01:01.370 --> 01:02.210
buenas prácticas.

01:02.960 --> 01:07.400
Ahora, tenga en cuenta que obtiene un mejor código de depuración a medida que codifica más y más.

01:07.400 --> 01:11.990
Así que lo mejor que puede hacer es seguir practicando, seguir escribiendo código Python.

01:13.370 --> 01:14.870
Entonces, ¿cuáles son algunos de mis consejos?

01:15.050 --> 01:22.250
Bueno, primero, definitivamente desea usar algo de LINTANG y lo que está limitando lo que hemos hablado

01:22.250 --> 01:30.500
de él justo cuando configuramos nuestro entorno de desarrollador, la limitación nos permite detectar mientras codificamos algunos problemas con nuestro

01:30.500 --> 01:31.050
código.

01:31.430 --> 01:40.340
Por ejemplo, si hago NUM más cuatro aquí y obtengo un subrayado rojo y ves aquí que el pastel copos linta se da cuenta

01:40.340 --> 01:46.150
antes de que incluso ejecute mi código, eso, oye, hay un número con nombre indefinido.

01:46.640 --> 01:51.380
Entonces Lintang nos permite encontrar estos errores incluso antes de ejecutar nuestro código.

01:51.980 --> 01:59.570
Y vimos que podemos usar ID como Pisar que ya tiene Lanting integrado o usar un texto sublime o

01:59.570 --> 02:06.850
código de estudio visual e instalar paquetes y extensiones como Pellant para tener LINTANG en nuestro código.

02:07.160 --> 02:09.410
Esa es una herramienta realmente importante.

02:09.740 --> 02:15.290
A continuación, recomiendo usar siempre algún tipo de identificación o.

02:16.370 --> 02:22.970
Ed, porque estos editores e ID, especialmente los que son específicos para Python, como Pixar, tienen todas

02:23.210 --> 02:30.050
estas herramientas integradas para que las usemos, como el formateo automático basado en Pep eight, recuerda la guía de

02:30.170 --> 02:34.190
estilo oficial de estilo que la comunidad de Python ¿tiene?

02:34.700 --> 02:42.440
Nos permite detectar errores en nuestro código con, digamos, resaltando y formateando nuestro código.

02:43.570 --> 02:47.510
Por lo tanto, es fácil para nosotros detectar cualquier error incluso antes de ejecutar el código.

02:48.340 --> 02:51.880
Finalmente, desea poder aprender a leer errores.

02:52.420 --> 02:58.720
Y esto es algo que trato de practicar contigo ya que hemos aprendido Python, por ejemplo,

02:58.930 --> 03:04.060
si lo hago por más, digamos galimatías aquí y hago clic en ejecutar.

03:06.310 --> 03:15.850
De inmediato, veo, oye, en la línea seis, hay un aire en mi archivo DCPI principal, hay un tipo de aire y veo aquí que

03:15.850 --> 03:23.860
estoy tratando de agregarlo y una cadena para que podamos leer los errores y entender lo que ellos quieren decir.

03:25.520 --> 03:29.570
Tal vez haga algo como esto si hago clic en ejecutar.

03:30.470 --> 03:31.700
Recibo un error de sintaxis.

03:33.130 --> 03:40.750
Y un error de sintaxis que sé significa que, oye, el intérprete de Python está tratando de leer mi código, pero lo que acaba

03:40.750 --> 03:42.460
de escribir no es Python.

03:42.470 --> 03:43.750
No tengo ni idea de lo que estás haciendo.

03:45.490 --> 03:51.310
Aquí veo que es el final de la línea mientras escaneo la cadena literal, así que estoy tratando de leer esta cadena

03:51.310 --> 03:55.510
y, de repente, el programa termina como se supone que debes terminar la cadena, ¿recuerdas?

03:56.880 --> 04:03.330
Entonces, poder leer estos aires es realmente muy importante, y hemos discutido algunos de ellos en este curso, algunos de

04:03.330 --> 04:08.640
los más comunes como el error de sintaxis, donde simplemente estás escribiendo algo que el intérprete

04:08.640 --> 04:10.250
de Python no comprende.

04:10.920 --> 04:16.530
Tenemos algo así como error, correcto, donde usamos una variable que no existe.

04:17.780 --> 04:22.640
Entonces Python no entiende, oye, no tengo idea de qué nombre es, ¿cuál es el valor del nombre?

04:24.160 --> 04:31.330
Tenemos cosas como tipo aire, es decir, cuando no emparejamos el tipo de datos y lo hacemos, digamos una cadena más cuatro.

04:32.320 --> 04:34.540
Tenemos cosas como un valuador.

04:35.550 --> 04:41.760
Tenemos cosas como Kierra, donde intentamos acceder a una clave que no existe o error de atributo,

04:41.880 --> 04:46.860
donde intentamos acceder al método del objeto y ese método no existe.

04:47.840 --> 04:53.430
Ahora, estos errores son algo que hemos estado viendo a lo largo del curso, y veremos

04:53.430 --> 04:55.350
algunos más fuera de eso.

04:55.350 --> 05:02.160
Hay entre 15 y 20 errores que son realmente comunes y que aparecen el 90 por ciento de las veces.

05:03.340 --> 05:08.380
Y si recuerda, siempre puede ir a la documentación de Python para aprender sobre ellos, pero esto solo viene

05:08.380 --> 05:09.390
con la práctica.

05:09.820 --> 05:14.440
Si ves un error que nunca antes habías visto, te recomiendo que vayas a la documentación y leas al

05:14.440 --> 05:14.950
respecto.

05:15.370 --> 05:19.320
Una vez que lo ve, por lo general tiende a recordar cuándo aparece a continuación.

05:20.200 --> 05:23.800
Pero déjame mostrarte mi forma favorita de depurar código.

05:25.100 --> 05:34.910
Y se llama PDB o Python Debugger, y PDB es un módulo integrado en Python aquí mismo.

05:36.230 --> 05:43.130
Nuevamente, recuerde, nuestro módulo integrado es parte de la biblioteca estándar con la que viene Python y PDB es

05:43.130 --> 05:46.040
el depurador de Python para intérpretes interactivos.

05:47.410 --> 05:51.010
Y puedes leer sobre esto aquí, pero déjame mostrarte lo que hace.

05:52.510 --> 06:00.130
Verá, PTB es extremadamente útil porque nos permite interactuar con el código, por lo que anteriormente,

06:00.130 --> 06:10.000
cuando teníamos una función, digamos que tenemos la función agregar y tenemos el número uno, el número dos, y luego esta

06:10.000 --> 06:14.470
función simplemente devuelve Namwon más el número dos .

06:15.760 --> 06:18.940
Ahora, antes, si quisiéramos, digamos, depurar este código.

06:19.830 --> 06:24.780
Y digamos que estamos agregando cuatro más un galimatías y nos está dando un aire.

06:26.840 --> 06:34.160
El primer paso que tomaría probablemente sería agregar una impresión aquí para poder decir imprimir, oye, ¿qué

06:34.160 --> 06:35.170
está pasando?

06:35.180 --> 06:37.940
Déjame ver el número uno y el número dos y lo que me está dando.

06:38.950 --> 06:43.010
E imprimir es una forma muy, muy rápida y sencilla de depurar su código.

06:43.630 --> 06:48.340
Lo uso todo el tiempo, pero PDB nos da un pequeño impulso adicional.

06:49.920 --> 06:58.080
Entonces podemos usarlo así, simplemente importamos PDB y en lugar de usar algo como una función de impresión, podemos

06:58.620 --> 07:06.840
simplemente decir déjame espacio exterior aquí, simplemente podemos decir PDB para el depurador de Python y luego decir establecer, rastrear

07:06.870 --> 07:14.850
y rastrear, yo diría que es el método más útil que tenemos en este objeto PDB que lo

07:14.850 --> 07:15.300
importamos.

07:16.500 --> 07:18.690
Verá, cuando ejecuto el método set.

07:22.290 --> 07:28.920
Ahora me brinda un depurador de Python interactivo en el que ahora puedo escribir comandos aquí y probar mi

07:28.920 --> 07:29.430
código.

07:30.310 --> 07:37.300
Y aquí está la parte interesante en este momento en este PDB, estoy justo dentro de la línea ocho, por lo que mi código

07:37.450 --> 07:41.660
intentó ejecutarse, pero luego se detuvo tan pronto como dijo PDB, dijo Trace.

07:41.680 --> 07:47.530
Y ahora estoy en este mundo y puedo probar lo que está pasando para poder decir, oye, Namwon, ¿qué

07:47.560 --> 07:48.040
es?

07:48.280 --> 07:50.250
Bueno, el número uno es ¿qué pasa con el número dos?

07:50.860 --> 07:52.570
Bueno, el número dos es una cuerda.

07:52.570 --> 07:56.410
Y podría decir, oh, estoy tratando de agregar una cadena y un final a esto.

07:56.620 --> 07:57.340
Esto no funciona.

07:57.670 --> 07:59.890
Entonces también puedo detectar errores de esta manera.

08:00.760 --> 08:06.070
Ahora, este PDB interactivo en realidad tiene un montón de cosas útiles.

08:06.250 --> 08:08.110
Entonces, si escribo ayuda aquí.

08:09.760 --> 08:17.890
Verá que tengo comandos que puedo usar en el PDB, así que tengo una tonelada aquí a la que tengo acceso, lo que supongo que

08:17.890 --> 08:22.870
me va a entusiasmar con este depurador de Python PDB, pero también lo he hecho.

08:23.790 --> 08:24.540
Cosas como.

08:25.460 --> 08:31.280
Digamos lista, veamos qué lista hace, así que cuando escribo lista aquí y ahora mismo, el sitio web realmente lo

08:31.280 --> 08:31.760
es.

08:32.900 --> 08:35.780
No me muestra demasiado, pero espero que todavía pueda ver la lista.

08:37.210 --> 08:44.350
Y supongo que es una especie de salida, veo que obtengo una lista de mi código y está bien, pero digamos que no sé exactamente

08:44.350 --> 08:45.820
qué hace la lista.

08:45.850 --> 08:46.240
Bien.

08:47.350 --> 08:50.830
PDB nos permite escribir ayuda y luego listar.

08:51.770 --> 08:57.530
Y cuando hacemos eso, en realidad nos da la documentación, tal como la tenemos aquí.

08:58.730 --> 09:00.650
Si vamos a, digamos, list.

09:03.300 --> 09:10.530
Veamos, hagamos una lista apática aquí, me da la documentación aquí, por lo que dice la fuente de la lista

09:10.530 --> 09:11.760
para la actual.

09:12.640 --> 09:12.900
Derecha.

09:12.910 --> 09:15.750
Entonces solo enumera el código fuente que escribimos.

09:16.080 --> 09:16.990
OK, eso es todo.

09:17.130 --> 09:18.030
¿Qué más hay ahí?

09:19.160 --> 09:25.160
Bueno, también tenemos algo como Step o S para abreviar y step es realmente genial.

09:27.090 --> 09:33.150
De hecho, usemos Clear para llevar esto a la parte superior, así que voy a decir clear para que borre todas las

09:33.150 --> 09:33.540
rupturas.

09:35.450 --> 09:36.050
Hagamos.

09:37.420 --> 09:40.920
Hagamos esto un poco más grande para que puedas ver que ahí lo tienes, eso es mejor, ¿verdad?

09:40.950 --> 09:47.140
Así que ahora puedo hacer algo como Step and Step nos permitirá pasar a la siguiente línea.

09:47.170 --> 09:49.660
Entonces, nuevamente, si hacemos esto un poco más grande.

09:50.950 --> 09:55.510
Step dirá, oye, ve a la línea nueve, así que veamos qué pasa, voy a escribir step.

09:57.530 --> 09:59.750
Ah, y me apuñalaron dos veces, un paso necesario.

10:01.780 --> 10:08.740
Y mire eso, voy a la siguiente línea de mi abrigo y me dice, oye, aparece un error tipográfico, el error

10:08.740 --> 10:09.450
que obtuvimos.

10:09.640 --> 10:11.280
Así que agreguemos otra línea aquí.

10:11.290 --> 10:19.660
Digamos que estamos tratando de sumar cuatro más cinco aquí o cuatro multiplicar por cinco y asignar

10:19.660 --> 10:22.180
asignarlo a una variable.

10:24.220 --> 10:26.260
Si detengo esto y ejecuto esto de nuevo.

10:28.590 --> 10:30.660
Ahora estoy adentro por aquí.

10:32.670 --> 10:40.350
Si escribo T, obtengo un nombre T no está definido porque, bueno, estoy dentro del código aquí en la línea ocho, pero

10:40.350 --> 10:42.480
todavía tenemos una línea roja nueve.

10:42.750 --> 10:44.010
Así que hagamos el paso.

10:45.190 --> 10:46.620
Y ahora estoy en el siguiente lado.

10:48.040 --> 10:56.680
Entonces, si no lo hago ahora, me acerco a 20, increíble, así que paso paso a paso por el código, que es realmente, realmente

10:56.680 --> 10:57.380
útil.

10:58.120 --> 11:03.130
También tengo cosas como continue, que me permite continuar con el código hasta que devuelva algo

11:03.490 --> 11:06.790
y continúo y salgo de PDB y miro eso.

11:06.790 --> 11:07.450
Llego a la sala de emergencias.

11:10.150 --> 11:17.260
Ejecutemos esto de nuevo, otro comando útil es ay A en realidad me da todos los argumentos de la función actual en

11:17.260 --> 11:18.500
la que estamos.

11:18.640 --> 11:19.720
Así que mira eso.

11:19.720 --> 11:22.460
Recibo todos los argumentos, lo que, de nuevo, es realmente útil.

11:23.380 --> 11:25.000
También está el comando W.

11:26.000 --> 11:30.890
Lo que me muestra el contexto de la línea actual que se está ejecutando.

11:32.310 --> 11:35.520
Para que pueda ver aquí dónde estamos, estamos en el anuncio.

11:36.320 --> 11:36.860
Función.

11:38.270 --> 11:43.610
Lo llamamos con estos argumentos y ahora estamos a punto de ejecutar esta línea.

11:46.050 --> 11:51.450
Y finalmente, mientras estamos debatiendo esto, está bien, creo que finalmente veo que

11:51.450 --> 11:59.300
tenemos un aire, deberíamos haberle dado un número, así que ahora puedo salir de aquí y simplemente arreglar esto en cinco.

11:59.790 --> 12:05.280
Así que ahora puedo eliminar mi PDB y todo debería funcionar bien con mi código.

12:06.670 --> 12:07.070
Impresionante.

12:07.900 --> 12:14.020
Así que PDB es increíble para revisar tu código y depurar y probar cosas diferentes, requiere un

12:14.020 --> 12:20.420
poco de práctica, pero después de un día de jugar con PDB, te volverás muy, muy bueno en eso.

12:21.100 --> 12:28.750
Entonces, después de este video, le recomiendo que escriba PDB y, con suerte, tenga un archivo Python lo suficientemente grande.

12:28.750 --> 12:35.500
Pueden simplemente pasar y experimentar con diferentes comandos, usando la ayuda, usando la lista para ver lo que tiene

12:35.530 --> 12:36.840
disponible para usted.

12:37.960 --> 12:44.010
De hecho, quiero mostrarles una última cosa, así que digamos que volvamos a nuestro código, nuestro PDB dice Trace, hago clic

12:44.830 --> 12:45.640
en ejecutar.

12:47.720 --> 12:56.390
¿Podría hacer algo como esto en el que me dé cuenta de que escribo y tengo todo escrito, mi código está funcionando, pero podría cambiar el

12:56.390 --> 13:00.160
número dos para que ahora sea igual a un galimatías?

13:02.310 --> 13:04.140
Bueno, veamos si hago lo siguiente ahora.

13:06.060 --> 13:08.550
Y hagamos lo siguiente para ejecutar esta última línea.

13:10.140 --> 13:18.810
Entro allí, así que también puedo cambiar las variables aquí y escribir código Python para quizás probar mis

13:18.810 --> 13:19.570
funciones.

13:19.770 --> 13:21.180
Esto ahora está funcionando.

13:21.180 --> 13:25.140
Puedo probar, oye, ¿qué pasa si cambiamos esta variable a otro valor?

13:26.180 --> 13:27.890
De nuevo, muy, muy útil.
