1 00:00:00,620 --> 00:00:05,459 En este vídeo voy a grabar la corrección de los ejercicios 36 al 40, 2 00:00:05,559 --> 00:00:09,000 estos cinco ejercicios que daban pendientes de revisar. 3 00:00:09,380 --> 00:00:14,720 Es importante porque además el 31 y el 40, sobre todo el 40, ya tienen un poquito de complicación 4 00:00:14,720 --> 00:00:20,140 y el 38, aunque es sencillo, sí que es verdad que para resolverlo hace falta una función 5 00:00:20,140 --> 00:00:24,460 que no explique en su momento la función zip, con lo cual también quiero que lo veamos. 6 00:00:24,899 --> 00:00:29,019 El 36 y el 37 son muy fáciles, pero igualmente los vamos a dejar corregidos 7 00:00:29,019 --> 00:00:30,440 para que quede todo completo. 8 00:00:30,879 --> 00:00:35,380 El ejercicio 36 nos pide simplemente que creemos una lista 9 00:00:35,380 --> 00:00:37,759 cuya extensión se pide al usuario. 10 00:00:38,939 --> 00:00:41,140 Recordad que para crear una lista vacía 11 00:00:41,140 --> 00:00:44,899 yo puedo utilizar simplemente el nombre de la lista 12 00:00:44,899 --> 00:00:49,119 seguido de los corchetes después de un igual de esta forma. 13 00:00:49,560 --> 00:00:51,640 Los corchetes indican que yo estoy creando una lista 14 00:00:51,640 --> 00:00:52,920 y la dejo vacía. 15 00:00:53,539 --> 00:00:57,039 La longitud de la lista se la voy a pedir al usuario. 16 00:00:57,039 --> 00:01:22,900 Va a ser un entero, obviamente, con lo cual la transformo, la convierto en int y pregunto cuántos elementos tiene la lista. Una vez que yo tenga la longitud, la puedo utilizar para un bucle que repita las iteraciones exactamente ese número de veces. 17 00:01:22,900 --> 00:01:34,159 es la longitud que yo he marcado, que el usuario de hecho ha marcado, ¿para qué? Para que en cada una de esas iteraciones le pida al usuario el dato que quiere añadir a la lista, ¿de acuerdo? 18 00:01:34,159 --> 00:01:51,680 Con lo cual va a decirle int input, escribe el valor, ¿no? Escriba el valor número, vamos a ponerle esto para que quede más bonito, número 1, número 2, etc., etc., para almacenar en la lista. 19 00:01:52,900 --> 00:02:10,639 Para que sea 1, 2, tenemos que poner en format y más 1, para que no empiece por el 0, sino que empiece por el 1. Y ahora recordad que hay un método para añadir un elemento en las listas. 20 00:02:10,639 --> 00:02:22,840 Así es el método Append, con lo cual ponemos listado 1.append dato y en cada una de las iteraciones de este bucle form me va a añadir el elemento que el usuario teclee. 21 00:02:22,840 --> 00:02:31,780 ¿De acuerdo? Bueno, pues esta sería. Habréis visto, no os lo he dicho, que estoy utilizando otro entorno, pero funcionalmente es igual, por supuesto. 22 00:02:31,780 --> 00:02:51,699 Le doy aquí, sí que está diferente, fijaos que abajo a la derecha es donde me deja teclear, de hecho es más chulo, ¿verdad? Y arriba a la derecha tengo los mensajes, los prints, ¿vale? Pues la lista tiene tres elementos, ¿vale? Y el elemento número uno es el uno, el elemento número dos, fijaos en el texto ahí abajo, es el dos, y el elemento número tres es el tres, ¿vale? 23 00:02:51,699 --> 00:03:05,300 Y ahí me queda mostrada la lista 1, 2 y 3, ya que en la línea 7, en este caso, tengo la función print para que me muestre el contenido de la lista. 24 00:03:06,300 --> 00:03:11,800 De hecho, este ejercicio es muy fácil y creo que lo hicimos en la clase cuando estaba explicando. 25 00:03:11,800 --> 00:03:33,939 Vale, el ejercicio 37, vamos con él. Veréis, en el ejercicio 37 nos dice que escribamos un programa que le diga al usuario cuántos elementos va a tener el diccionario y después le pida que escriba el valor de la clave 1 y el valor del valor 1, para que lo cambiamos y así para todos los elementos que tenga el diccionario. 26 00:03:33,939 --> 00:03:47,860 Bien, lo primero que tenemos que ver en este caso es la diferencia importante entre crear un diccionario vacío y crear una clave vacía. Yo no puedo crear el diccionario vacío poniéndole aquí igual paréntesis porque entonces podría ser igualmente una tupla, no se sabe. 27 00:03:47,860 --> 00:04:04,400 Entonces tengo que utilizar la función dict, ¿verdad? Y eso sí, sin ningún parámetro para dejarlo preparado para que después se añadan los valores. ¿Cuántos elementos va a tener? Pues de nuevo los que le pida al usuario, ¿de acuerdo? 28 00:04:04,400 --> 00:04:18,639 ¿Cuántos elementos tendrá el diccionario? 29 00:04:18,639 --> 00:04:22,639 Preguntamos al usuario y ese número de elementos lo vamos a utilizar 30 00:04:22,639 --> 00:04:28,639 como argumento para Arrange para que me pregunte y repita este bucle 31 00:04:28,639 --> 00:04:32,639 las veces que yo marque precisamente aquí. 32 00:04:32,639 --> 00:04:36,639 Así que para el rango de elementos, 5 o 6, los que sean, 33 00:04:36,639 --> 00:04:41,560 lo que me vas a hacer es lo siguiente, ahora tengo que pedir dos cosas, la clave y el valor 34 00:04:41,560 --> 00:04:45,339 ¿de acuerdo? entonces, la clave, pues va a ser 35 00:04:45,339 --> 00:04:48,480 lo que sea, un número, si le pongo int, pues que quede un número, luego 36 00:04:48,480 --> 00:04:51,519 bueno, luego hacemos algún cambio, escribe el valor 37 00:04:51,519 --> 00:04:56,399 o escribe la clave, por no mezclar, perdonad, escribe la clave, porque si no, si escribo 38 00:04:56,399 --> 00:05:00,540 el valor de la clave, el valor del valor, escribe la clave, lo que sé que voy a poner 39 00:05:00,540 --> 00:05:04,439 es aquí, de nuevo, esto, para que me diga escribe la clave 1, ¿de acuerdo? 40 00:05:04,439 --> 00:05:44,819 acuerdo, format, y de nuevo voy a poner i más 1 para que sea la clave 1, ¿verdad? Y no empiece por la clave 0 que queda peor, ¿vale? Escribe la clave 1, perdón, que se me ha olvidado el input, input, pum, a ver si consigo borrar eso, ahí, escribe la clave, eso es, y ahora, valor, ¿de acuerdo? No he buscado otros nombres, clave y valor, lo puedo llamar como quiera, ¿vale? 41 00:05:44,819 --> 00:06:06,300 Es verdad que es la terminología que utilizamos precisamente para cada pareja del diccionario, las parejas clave-valor, ¿de acuerdo? Bien, pues esto es valor igual input, escribe el valor, número 1, ¿no? Y número 2 y número 3, etcétera, etcétera. 42 00:06:06,300 --> 00:06:24,920 Así que usamos de nuevo format, ¿vale? Format y de nuevo i más uno, lógico para que coincida también con lo de arriba además, ¿vale? Escribe el valor. Y ahora, esto que es muy importante, diccio uno, escribo entre corchetes clave y pongo aquí igual a valor. 43 00:06:24,920 --> 00:06:27,439 clave y valor, porque es el nombre que he dado aquí a estas variables 44 00:06:27,439 --> 00:06:29,600 de acuerdo, entre corchetes, donde vaya 45 00:06:29,600 --> 00:06:30,860 la clave, llámese como se llama 46 00:06:30,860 --> 00:06:33,480 y después del igual, donde vaya el valor 47 00:06:33,480 --> 00:06:35,019 llámese como se llama, vale 48 00:06:35,019 --> 00:06:37,339 pero para qué vamos a buscar otros nombres, y ahora le digo 49 00:06:37,339 --> 00:06:38,519 que me imprima el diccionario 50 00:06:38,519 --> 00:06:41,459 in, diccio, uno, vale 51 00:06:41,459 --> 00:06:42,939 y creo que ya lo tenemos 52 00:06:42,939 --> 00:06:43,759 vamos allá 53 00:06:43,759 --> 00:06:46,680 no, algo falla aquí 54 00:06:46,680 --> 00:06:48,980 ah, se me ha olvidado el in, vale 55 00:06:48,980 --> 00:06:50,839 for i, con la i adeval 56 00:06:50,839 --> 00:06:52,699 for i, in range, aquí, vamos allá 57 00:06:52,699 --> 00:06:54,860 ¿cuántos elementos tiene el diccionario? dos 58 00:06:54,860 --> 00:07:10,759 ¿Verdad? Por ejemplo, escribe la clave 1. Pues voy a poner 1. ¿Cuál es el valor? A. Escribe la clave 2. ¿Cuál es el valor? B, por ejemplo. Y ya tenemos 1A, 2B. El diccionario se ha guardado con ese contenido. 1A y 2B. 59 00:07:10,759 --> 00:07:29,100 ¿Vale? Bien. Por ejemplo, ¿qué ocurre si queremos, en lugar de que tenga como clave 1, 2, 3, 4, queremos almacenar otro tipo de cosas? Bueno, pues primero voy a cambiar aquí en clave, le voy a quitar la conversión, ya no es un entero porque quiero usar ahora mismo palabras. 60 00:07:29,100 --> 00:07:51,329 Voy a crear un diccionario en el que almacene nombres y números de teléfono, como una agenda. ¿Cuál es la clave 1? Juan, por ejemplo. ¿Cuál es el valor 1? El 7 del teléfono que sea. Pedro y su teléfono. 61 00:07:51,329 --> 00:08:10,930 Y en este caso, fijaos, ha guardado dos nombres con su número de teléfono. Las parejas ahora mismo son la clave nombres y el valor números de teléfono. Claro, porque no tienen por qué ser números como teníamos en el ejemplo de antes. Eso no es necesario. 62 00:08:10,930 --> 00:08:34,129 Bien, pues este sería el ejercicio 37, que es importante y muy sencillo. Vamos a por el 38, ¿de acuerdo? Venga. El ejercicio 38 es muy parecido a este. La única diferencia es que, bueno, en este caso los valores no los va a introducir el usuario, sino que son listas que yo voy a obtener de una forma u otra. 63 00:08:34,129 --> 00:08:54,929 Y después es muy importante que necesitamos, o la forma más rápida de hacerlo es utilizando la función tip que no conocíamos. Aquí vamos a crear una lista que se llame impares. Recordad que para crear una lista utilizo los corchetes y una lista que se llame enteros. 64 00:08:54,929 --> 00:09:07,590 ¿Vale? Y igualmente utilizo los corchetes. El ejercicio dice, crea una lista con los 10 primeros impares y utilízala para los valores de un diccionario, cuyas claves serán los números enteros del 1 al 10. 65 00:09:07,669 --> 00:09:18,230 Es decir, que impares lo de arriba me va a servir como para valor, son los valores del diccionario, mientras que abajo, enteros, la lista segunda, van a ser las claves del diccionario. 66 00:09:18,230 --> 00:09:40,110 Vale, podríamos poner impares, valor, enteros, clave, bueno, da igual. Bien, ahora necesito dos bucles, uno para los valores y otro para las claves, ¿de acuerdo? Entonces, muy importante, aquí, en el caso de los impares, los impares van a ser los valores y quiero que sean los diez primeros números impares. 67 00:09:40,110 --> 00:09:58,029 Entonces, necesito utilizar, igual que hacíamos con las cadenas de caracteres cuando estábamos indexando, cuando queríamos ver los diferentes caracteres, utilizando un tercer parámetro, en este caso 2, lo que hace es ir saltando y de esa forma el siguiente elemento de la lista no es el 2, sino que es el 3. 68 00:09:58,029 --> 00:10:11,830 se va saltando uno, va de dos en dos, y como empieza por el uno, pues va cogiendo los impares, ¿de acuerdo? Entonces, estos elementos de este bucle, que van a ser el uno, el tres, el cinco, etc., etc., etc., por este tercer parámetro que hace el salto, 69 00:10:11,830 --> 00:10:33,710 Los voy a ir añadiendo iteración tras iteración a mi lista. Ahora voy a hacer lo mismo, pongo j para la lista de los números enteros. Voy a poner del 1 al 11 porque, claro, no quiero del 0 al 10 que queda peor, sino del 1 al 11. 70 00:10:33,710 --> 00:10:37,049 No es porque me guste más empezar por uno, sino porque lo pide el ejercicio. 71 00:10:37,529 --> 00:10:41,149 Así que en este caso hago exactamente lo mismo. 72 00:10:41,870 --> 00:10:45,929 Añado cada uno de los valores que va a ir generando el bucle, ¿verdad? 73 00:10:46,669 --> 00:10:51,870 Cada uno de los valores de j en esta lista de enteros. 74 00:10:51,870 --> 00:10:56,870 Y ahora que tengo los dos viene lo que efectivamente no conocíais, que es... 75 00:10:56,870 --> 00:11:21,509 Entonces creamos el diccionario y para crear el diccionario utilizamos la función zip que estoy poniendo aquí con dos parámetros. El parámetro impares que serían los valores, primero los valores y después el parámetro enteros que serían las claves. Cuidado con el orden, es importante. Primero los valores, luego las claves. Aunque en el diccionario se muestra al revés, pero esta es la sintaxis de esta función. 76 00:11:21,509 --> 00:11:40,250 Y ahora vamos a ver el diccionario, ¿de acuerdo? Pues esta sería la solución al ejercicio número 38. Vamos allá, vamos allá. Bien, y bueno, ya está, ya me lo ha creado, ¿verdad? Uno es la primera pareja, uno es la clave, uno es el valor siguiente. 77 00:11:40,250 --> 00:12:04,679 La clave de la segunda pareja es 3, ¿verdad? Y el valor es 2, porque hemos dicho que, o me he equivocado, perdonadme, 1, 3, eso es, los valores, ah, no, claro.