‫Bienvenido de nuevo y este video, vamos a arreglar el trabajo que teníamos y veremos cómo
‫podemos resolverlo.
‫Entonces, en este ejemplo, es muy básico.
‫Y realmente sabemos que tenemos este método que hace la lógica.
‫Derecha.
‫Así que este es el que se da cuenta de si un amigo es un amigo de la fiesta o no.
‫Y eso es algo que generalmente es algo que te ayudará a depurar, porque si sabes lo que
‫hará un método específico, entonces puedes crear un punto de interrupción en ese punto.
‫Está bien.
‫Entonces, si trabaja en un programa que nunca ha usado antes, visto antes, entonces, por supuesto,
‫primero que nada, debe investigarlo y comprender lo que hacen todos los métodos.
‫Y es por eso que aquí, por supuesto, sería útil tener un resumen de lo que está sucediendo aquí.
‫Está bien.
‫Entonces, explica, está bien, ¿qué hace esto?
‫¿Cuál es el resumen de este método?
‫Entonces puedes usar tripple.
‫Sí, más basura.
‫Y luego puedes agregar un pequeño resumen.
‫Así que esta es la lógica para averiguar quién A es un amigo de la fiesta o quién será un amigo de la fiesta o algo así.
‫No es un inglés perfecto, pero creo que entiendes cuál es la idea.
‫Entonces, una vez que hagas eso, sabrás, está bien, está bien.
‫Aquí es donde está la lógica y nuestro programa funciona por sí solo.
‫¿Derecha?
‫Así que funciona según lo previsto, más o menos, excepto, por supuesto, que nos muestra a los amigos que tenemos un nombre largo y
‫no los que tienen un nombre corto.
‫Así que lo más probable es que el problema esté en la lógica, en cómo seleccionamos algo.
‫Así que aquí ya podríamos ver o probablemente este es el método en el que tenemos el problema para poder deshacernos de
‫este punto de interrupción y de este también.
‫Y luego podemos echar un vistazo a nuestro método aquí.
‫Así que agreguemos un punto de interrupción en el método de amigo de la fiesta y luego lo investigaremos.
‫Así que comencemos con eso.
‫Y lo que importa son, por supuesto, los valores, ¿verdad?
‫Por eso queremos conocer los valores.
‫Y en este caso, estamos interesados en el nombre más corto y quizás también en la longitud aquí, porque esa es la
‫lógica, ¿verdad?
‫Entonces, lo que haríamos es pasar al siguiente paso.
‫Y podemos ver, está bien, la lista consta de siete valores, así que está bien.
‫Entonces esto parece funcionar.
‫Tenemos a todos nuestros amigos ahí.
‫Entonces, hasta ese momento, todo parece ir bien.
‫Luego pasamos al siguiente paso.
‫Entonces tenemos nuestro ojo, que es nuestro.
‫Contador y está en cero.
‫Está bien, está bien, y el último recuento es siete, así que podemos pasar al siguiente paso.
‫Ahora, tenemos una comparación aquí.
‫Si la lista, la longitud más corta, la longitud más grande.
‫Y allí podemos ver que el nombre más corto es Frank.
‫Así que ese es el que comenzamos.
‫Derecha.
‫Entonces la lista comienza con Frank.
‫Así que al menos yo, que es cero.
‫Tendremos a Frank.
‫Así que está bien.
‫Ahora, vayamos al siguiente paso, ya que parece que esta condición en la declaración if no era cierta.
‫Está bien.
‫Luego podemos pasar a la siguiente iteración o al siguiente paso.
‫Y se está comparando nuevamente, ahora podemos ver que la lista sigue siendo de siete personas y que obtuvimos una longitud de
‫cadena con tres y la otra con cinco.
‫Entonces, ¿qué está pasando aquí?
‫Estamos viendo a Joe y Joe debería ser el siguiente en la lista porque tiene un nombre más corto que
‫Frank.
‫Y eso es algo que sabemos porque escribimos el programa.
‫Pero por alguna razón, seguro, este nombre sigue siendo Frank.
‫Entonces, en este punto, podríamos darnos cuenta de que están bien.
‫Así que probablemente es que tenemos un error aquí.
‫Así que estamos comparando lo creado con aunque debería ser menos que ahora.
‫Derecha.
‫O más pequeño entonces y ahora, si nos deshacemos del punto de interrupción y ejecutamos nuestro programa nuevamente, entonces veremos, OK, obtenemos
‫los nombres más cortos, Joe y Frank y Maria.
‫Está bien.
‫Eso es genial.
‫Así que ahora nuestro programa está libre de errores.
‫Bueno, y por supuesto, no es porque todavía tengamos muchos problemas aquí.
‫Uno de ellos es que tenemos esta lista con Frank, Joe, Michelle, etc.
‫Está bien.
‫Así que creamos la lista manualmente para saber qué hay allí.
‫Pero ahora veamos.
‫Lo que intentamos hacer es invitar a diez personas.
‫Pero nuestra hija nos acaba de dar una lista de siete personas.
‫Así que ejecutemos este código.
‫Y.
‫Tenemos una excepción, perfecta, así que eso es lo mejor de las excepciones, sabes que algo anda mal
‫con tu código y puedes arreglarlo porque a veces, como acabamos de ver, si no
‫ves los errores, son muy difíciles. arreglar.
‫Y aquí hay una excepción de argumento fuera de rango.
‫El índice estaba fuera de rango, debe ser no negativo y menor que el tamaño de la colección.
‫Para que pueda ver detalles sobre esto.
‫Puede ver un poco más sobre esta excepción y le dirá todo lo que necesita saber.
‫Derecha.
‫Entonces mucha información.
‫La mayoría de las veces es demasiado.
‫Pero lo que esto dice es que estamos tratando de que exista un elemento en la lista que esté fuera de nuestro rango.
‫Bien, entonces, ¿qué podría ser?
‫Bueno, podría ser la lista a la que estamos intentando acceder para poder ir aquí.
‫Y podemos ver que tenemos una excepción, tenemos una lista que cuenta cero.
‫Entonces, ¿qué está pasando? ¿Por qué la lista es cero, porque vimos antes que la lista fuera siete, verdad?
‫Entonces, ¿por qué la lista de repente es cero?
‫Porque nunca realmente.
‫Miramos la lista y borramos la lista, ¿verdad?
‫Bien.
‫Lo que hicimos fue eliminar un elemento de la lista, por lo que teníamos una lista que eliminar.
‫Y ese es un error de principiante, por así decirlo, porque como les dije antes, estamos pasando
‫por referencia, no estamos pasando por valor las diferencias a seguir cuando decimos.
‫Que queremos tener una lista aquí y una vez que se llama a este método, que es el caso aquí, entonces se
‫llama a get party friends aquí y le pasamos una lista llamada friends.
‫Así que pasamos esta lista aquí, lo que no significa que pasemos los valores.
‫Nosotros no
‫De hecho, pasamos la referencia a esos valores, lo que significa que todos esos valores están en algún lugar de
‫nuestra memoria.
‫Así que ahí en la memoria de nuestra computadora.
‫Derecha.
‫Y estamos haciendo referencia a esos valores.
‫Entonces decimos, está bien, me gustaría ir a este recuerdo donde tienes a todos tus amigos.
‫Entonces me gustaría ir a Frank.
‫Me gustaría ir con Joe y demás.
‫Entonces, una vez que trabajamos con esta lista, por ejemplo, eliminamos un elemento de esa lista.
‫No creamos una copia con los valores y luego seguimos adelante y eliminamos elementos de la lista.
‫Pero en realidad estamos borrando en esta memoria.
‫Entonces borraremos a Frank de la lista.
‫Eliminaremos a Joe de la lista.
‫Por lo tanto, puede verlo fácilmente si usa esto para cada bucle para ver a sus amigos.
‫Bien, lo voy a usar de nuevo para que podamos ver algo.
‫Así que voy a revisar esto para cada ciclo.
‫Y como puede ver, solo Angelena es mostrada por solo Angelena porque Angelina es la séptima en la
‫lista.
‫Y acabo de eliminar a seis personas de la lista.
‫Hagámoslo de nuevo con cuatro personas.
‫Solo para que veas que María, Carlos y Angelina siguen ahí.
‫Vos tambien.
‫Veo.
‫De hecho, es Michelle.
‫Está bien.
‫Así que incluso mejor ahora, tenemos una situación muy extraña en la que son Michelle, Carlos y Angelina quienes todavía están
‫en la lista.
‫De acuerdo, constantemente eliminamos a alguien de la lista.
‫Y eso crea un montón de problemas porque si alguien más o si usamos la
‫lista de este amigo en otro lugar, entonces estará vacía y se corromperá.
‫No tendrá los valores iniciales allí.
‫Y eso es algo que no deberíamos hacer.
‫Entonces, lo que podemos hacer es crear un búfer aquí.
‫Así que solo voy a crear un nuevo búfer verbal llamado, y esa será una nueva lista de cadenas.
‫Y será mi lista, así que solo voy a pasar la lista que se me pasa en este momento.
‫Está bien.
‫Y lo voy a almacenar en Buffer.
‫Entonces será una nueva lista.
‫Y ahora lo que podemos ver es que, por supuesto, ahora tenemos que eliminar del búfer.
‫Así que eliminaremos de esta copia de la lista.
‫No lo eliminaremos de la lista.
‫Está bien.
‫Esa es la diferenciación importante que tenemos que hacer.
‫Estamos eliminando de la copia ahora.
‫Ahora, por supuesto, también tenemos que usar el búfer aquí para que el partido esté al frente, porque de lo contrario
‫nunca publicaremos nada de la lista que siempre será de siete personas.
‫Entonces, incluso en esta lista de búfer, siempre habrá siete personas y entonces no funcionará correctamente.
‫Está bien.
‫Para que seamos Frank, Jo, Michelle, todo sigue en la lista.
‫Bien, entonces el para cada bucle funciona bien.
‫Y en comparación, lo que podríamos hacer es hacer otros cuatro bucles y comprobarlo con los amigos de la fiesta solo para
‫ver si ahora solo tenemos siete amigos de la fiesta, tres amigos de la fiesta.
‫Entonces puedes ver que en realidad son amigos de la cuarta fiesta.
‫Así que todos están ahí y Joe, Frank y María también siguen ahí.
‫Entonces no borramos la lista de amigos.
‫Eliminamos los elementos de la lista de búfer.
‫Y ahora, por supuesto, ya no necesitamos esto.
‫Así que esto fue solo con fines de prueba y para depurar.
‫Pero ahora tenemos un programa que funciona bien.
‫Ahora, podría decir, está bien, ya no tenemos ningún error.
‫Bueno, pero todavía no arreglamos ese error que teníamos antes, si entramos en 10 años.
‫Lo haríamos.
‫Obtiene un error o error, en realidad un argumento fuera del rango de excepción.
‫Entonces, ¿qué podemos hacer aquí?
‫Porque estamos intentando acceder a un elemento que no existe.
‫Así que estamos intentando acceder a un elemento de la lista, aunque nuestra lista esté vacía.
‫Así que contemos es cero.
‫Y eso es algo que vamos a arreglar en el próximo video, porque, nuevamente, esto es más de 10
‫minutos y no quiero hacer videos muy largos.
‫Así que les mostraré cómo solucionar esto en el siguiente video porque tenemos muchos problemas que resultan de
‫esto.
‫Está bien.
‫Así que corrijámoslos en el siguiente video.
‫Te veo allí.