1 00:00:00,370 --> 00:00:03,169 Hola, buenos días a todos y a todas. 2 00:00:03,310 --> 00:00:09,070 Bueno, tal y como hablamos ayer, voy a grabar la corrección de los ejercicios de las dos baterías, 3 00:00:09,210 --> 00:00:13,970 los ejercicios Python 2 y 3, para que lo tengáis y podáis estudiar con ello, 4 00:00:14,070 --> 00:00:20,769 ya que ayer no todo el mundo se pudo conectar cuando cayó Webex y tuvimos que pasar a Jitsi tan precipitadamente. 5 00:00:21,309 --> 00:00:25,190 Bueno, voy corriendo porque el máximo tiempo de grabación aquí son 15 minutos, 6 00:00:25,190 --> 00:00:32,049 así que voy a tratar de hacer los ejercicios del 7 al 10, si no me da tiempo pues luego cambio, luego hago otro vídeo. 7 00:00:32,429 --> 00:00:38,250 Vamos con el ejercicio 7 que ya lo corregimos ayer y que es muy sencillo, simplemente nos pide mostrar información 8 00:00:38,250 --> 00:00:44,229 utilizando el método format para verlo como nosotros queramos. 9 00:00:44,369 --> 00:00:50,549 En este caso se trata de utilizar tres variables con un contenido que yo ya he dado en el ejercicio, 10 00:00:50,549 --> 00:01:05,629 porque como digo es muy sencillo, es una prueba simplemente para valorar esto, así que creamos las tres variables, el DNI es una cadena de caracteres igualmente 11 00:01:05,629 --> 00:01:18,650 y ahora vamos a mostrar ese texto en tres formas diferentes, que sería con tres contenedores que yo voy a crear aquí, de acuerdo, uno, dos y tres 12 00:01:18,650 --> 00:01:27,530 separados entre sí, tres espacios que es lo que me pide ¿verdad? y ahora le ponemos el método format aquí ¿de acuerdo? 13 00:01:27,530 --> 00:01:38,989 y aquí vamos a escribir pues lo que pone en la primera fila ¿verdad? nombre, coma, apellido, los tres parámetros y dni ¿verdad? 14 00:01:39,810 --> 00:01:46,329 ¿y cómo queremos que se muestre cada uno de ellos? pues en el ejercicio lo vemos que está centrado y con un carácter de relleno 15 00:01:46,329 --> 00:01:55,390 que es concretamente el asterisco, pues así, centrado, asterisco y ocupando 12 espacios, ¿de acuerdo? 16 00:01:56,810 --> 00:02:02,849 El centrado se me ha olvidado, que es poner un acento circunflejo, ¿de acuerdo? 17 00:02:03,109 --> 00:02:06,450 Así, pues toda esta estructura la vamos a copiar, ¿vale? 18 00:02:07,230 --> 00:02:12,830 Y la vamos a poner en los otros y así no perdemos tiempo, ¿vale? 19 00:02:12,830 --> 00:02:45,780 Eso respecto a la primera fila. En la siguiente fila, vamos a utilizar de nuevo el método format para mostrar en pantalla una cadena de caracteres 20 00:02:45,780 --> 00:02:52,460 en la que tendremos estos tres contenedores separados de nuevo tres espacios 21 00:02:52,460 --> 00:03:01,060 y en los que van a ir, shift format, tres variables en este caso, nombre, apellido y DNI 22 00:03:01,060 --> 00:03:05,840 las tres variables que hay aquí arriba con el contenido que en este caso hemos escrito directamente 23 00:03:05,840 --> 00:03:11,639 pero que podría muy fácilmente utilizarse a partir de un input de usuario 24 00:03:11,639 --> 00:03:17,639 Bueno, pues aquí vamos a poner el texto en la forma en la que nos pide el ejercicio 25 00:03:17,639 --> 00:03:20,960 Que en este caso es alineado a la izquierda 26 00:03:20,960 --> 00:03:22,860 ¿Verdad? Y sin carácter de relleno 27 00:03:22,860 --> 00:03:28,319 Y creo que también, bueno, creo no, con 12 también para que quede en forma de tabla 28 00:03:28,319 --> 00:03:30,840 Para que quede tabulado, que es de lo que se trata 29 00:03:30,840 --> 00:03:33,400 ¿De acuerdo? Pues los dos puntos, 12 30 00:03:33,400 --> 00:03:37,360 Y los dos puntos, 12 31 00:03:37,360 --> 00:03:41,599 Vale, y así estaría 32 00:03:41,599 --> 00:04:00,000 Vamos a ejecutarlo y nos muestra tal y como se veía en el ejemplo, aquí arriba una primera fila con el texto centrado y completando hasta 12 caracteres, hasta 12 posiciones con asteriscos y en la fila de abajo sin carácter de relleno y alineado a la izquierda. 33 00:04:00,000 --> 00:04:08,879 Si yo le pongo carácter de relleno, pues quedaría de la siguiente forma. Vamos a verlo para que veáis bien claro esto, aunque es evidente, ¿verdad? 34 00:04:10,599 --> 00:04:26,800 Vale, como digo, esto es muy sencillo. Podríamos completar el ejercicio diciendo que mostrase la información, pero que pidiera al usuario que escribiera su nombre, su apellido, su DNI, para luego mostrarlo en la forma en la que decidamos, esta o cualquier otra. 35 00:04:26,800 --> 00:04:42,139 Bueno, pues esto sería el ejercicio número 7. Vamos al ejercicio 8 y en este caso nos pide, es un enunciado muy largo pero es muy sencillo, nos pide que pidamos al usuario en este caso un número con 4 decimales, aquí se usa un input, ¿verdad? 36 00:04:42,139 --> 00:04:48,839 y después que lo muestre de tres formas diferentes, con 10 espacios separados por 3 como antes 37 00:04:48,839 --> 00:04:53,220 y en la primera alineada a la izquierda con dos decimales, en la segunda columna centrado y con un decimal 38 00:04:53,220 --> 00:04:56,920 y en la tercera a la derecha y con tres decimales. 39 00:04:56,920 --> 00:05:06,899 Pues entonces vamos allá y le decimos que nos dé un número verdad que vamos a transformar a convertir en decimal 40 00:05:06,899 --> 00:05:14,720 porque recordad siempre que el input en Python 3 es una cadena de caracteres y hay que transformarlo en un decimal en float 41 00:05:14,720 --> 00:05:23,939 y le decimos al usuario teclea un número con cuatro decimales o con tres, da igual 42 00:05:23,939 --> 00:05:33,939 y ahora ese número lo vamos a mostrar tres veces en pantalla 43 00:05:33,939 --> 00:05:52,240 Fijaos que va entre comillas porque esto es una cadena de caracteres, un string al que vamos a aplicar el método format. ¿Para qué? Para que esta variable num, el dato que ha metido el usuario, que ha introducido el usuario, nos muestre de tres formas diferentes. 44 00:05:52,240 --> 00:06:04,319 Entonces, tres separaciones, ¿vale? Y queremos que se muestre aquí con, bueno, le voy a poner un carácter de relleno, aunque creo que no lo pide, con una almohadilla, por ejemplo, como carácter de relleno. 45 00:06:04,920 --> 00:06:18,939 En el primer caso decía, a ver, alineado a la izquierda, pues este carácter menor que es para alinear a la izquierda, una longitud de 10, pide en este caso, y con dos decimales, ¿vale? 46 00:06:18,939 --> 00:06:22,379 Pues esto mismo lo voy a copiar para luego ir cambiando, ¿vale? 47 00:06:22,800 --> 00:06:26,300 Control-C porque como está empezado de escribir, ¿vale? 48 00:06:26,300 --> 00:06:29,379 Lo copiamos y luego lo modificamos, aunque hay que tener siempre cuidado, ¿verdad? 49 00:06:29,759 --> 00:06:32,680 En el segundo caso me dice con un decimal, ¿verdad? 50 00:06:33,540 --> 00:06:36,399 En el tercer caso con tres decimales. 51 00:06:36,620 --> 00:06:39,339 Y luego aquí dice que lo pongamos centrado. 52 00:06:40,139 --> 00:06:47,540 Recordad que para poner el acento circunflejo hay que darle espacio porque se pone sobre un carácter, en este caso sobre el espacio. 53 00:06:47,540 --> 00:06:49,759 Y a la derecha, por último, ¿verdad? 54 00:06:51,399 --> 00:06:53,660 Vale, pues así sería si no me he equivocado 55 00:06:53,660 --> 00:06:56,459 Vamos a ejecutarlo y... 56 00:06:57,779 --> 00:06:58,600 Aquí está, ¿de acuerdo? 57 00:06:59,139 --> 00:07:02,579 Alineado a la izquierda, en el centro y alineado a la derecha 58 00:07:02,579 --> 00:07:07,740 Si le quitamos el carácter de relleno, que es lo que pedía el ejercicio en realidad 59 00:07:07,740 --> 00:07:11,939 Y le ponemos aquí, por cierto, un espacio para que no quede tan feo, ¿verdad? 60 00:07:12,220 --> 00:07:13,500 Al describirlo 61 00:07:13,500 --> 00:07:16,860 Vale, pues 2,5894 62 00:07:16,860 --> 00:07:19,540 y aquí lo tenemos en tres formas diferentes. 63 00:07:19,720 --> 00:07:23,939 Bueno, pues con estos dos ejercicios hemos practicado el método format, 64 00:07:23,939 --> 00:07:29,519 que es un método para cadenas de caracteres y que nos permite dar formato, vaya, 65 00:07:29,639 --> 00:07:31,420 no hay otra forma más que utilizar esta palabra, 66 00:07:31,980 --> 00:07:35,600 organizar el texto que nosotros vamos a mostrar en pantalla 67 00:07:35,600 --> 00:07:38,500 o los caracteres que vamos a mostrar como nosotros queramos, 68 00:07:38,600 --> 00:07:41,860 con caracteres de relleno y sobre todo para dar forma de tabla. 69 00:07:42,000 --> 00:07:44,540 Sería una de las utilidades básicas. 70 00:07:44,540 --> 00:07:53,519 En otros ejercicios yo lo voy a utilizar para saltarme o para evitar la concatenación, que es un poco más fea y a veces más liosa. 71 00:07:53,899 --> 00:07:58,680 Bueno, paso al programa número 9, que dice, crea un programa de creación de nombres de usuario. 72 00:07:58,899 --> 00:08:02,220 Para ello se pedirá al usuario su nombre y apellidos, así como el DNI. 73 00:08:02,540 --> 00:08:07,220 El nombre de usuario estará formado por la primera letra del nombre, las tres primeras letras del primer y segundo apellidos, 74 00:08:07,620 --> 00:08:10,100 y los tres últimos números del DNI, sin la letra. 75 00:08:10,540 --> 00:08:13,079 Todos los caracteres del nombre de usuario deben ir en minúsculas. 76 00:08:13,079 --> 00:08:31,360 Este es un ejercicio en el que vamos a trabajar con cadenas de caracteres y vamos a coger parte de esas cadenas de caracteres para obtener esta clave de usuario o una contraseña de nombres de usuario. 77 00:08:31,360 --> 00:08:34,100 para obtener estos nombres de usuario 78 00:08:34,100 --> 00:08:37,539 solo necesitamos utilizar en realidad 79 00:08:37,539 --> 00:08:39,799 el loncheado 80 00:08:39,799 --> 00:08:43,399 de cadenas de caracteres 81 00:08:43,399 --> 00:08:45,940 que recordáis que se hace con los corchetes y poniendo 82 00:08:45,940 --> 00:08:49,480 los índices de las 83 00:08:49,480 --> 00:08:52,100 partes de la cadena que quiero lonchear teniendo en cuenta 84 00:08:52,100 --> 00:08:54,379 que el primero se incluye y el segundo no 85 00:08:54,379 --> 00:08:57,919 y además que los índices comienzan por cero, tenéis que acordar de eso 86 00:08:57,919 --> 00:09:01,240 que el primer carácter comenzando por la izquierda es el índice cero 87 00:09:01,240 --> 00:09:21,000 Y continúa contando hasta donde lleguemos. Eso sí, como en matemáticas en los intervalos, pues aquí en el primer dígito, el de comienzo, se incluye en la loncha, en el trozo que yo voy a obtener y el último no se incluye. Esto hay que tenerlo en cuenta para poder obtener justo lo que yo quiero. 88 00:09:21,000 --> 00:09:33,519 Bueno, pues entonces vamos a darle al programa la opción de pedir al usuario el nombre, el apellido y el DNI, ¿de acuerdo? 89 00:09:33,519 --> 00:09:55,490 apellido1, input, escribe tu primer apellido, vamos a ponerle los espacios que si no luego queda muy feo, apellido2, input, escribe tu segundo apellido 90 00:09:55,490 --> 00:10:05,590 y en todos estos casos recordad que no necesitamos convertir esta variable porque nosotros estamos pidiendo texto 91 00:10:05,590 --> 00:10:09,690 y texto es lo que introduce por defecto input, ¿verdad? 92 00:10:10,289 --> 00:10:16,129 dni, pues de nuevo input, escribe tu dni 93 00:10:16,129 --> 00:10:20,049 vale, pues ya lo tenemos 94 00:10:20,049 --> 00:10:24,769 y un espacio aquí y un espacio aquí 95 00:10:24,769 --> 00:10:26,330 bueno, pues una vez que hemos terminado con esto 96 00:10:26,330 --> 00:10:29,309 vamos a coger de la variable nombre un trocito 97 00:10:29,309 --> 00:10:30,730 de la variable apellido otro 98 00:10:30,730 --> 00:10:32,830 y de la variable apellido 2 otro 99 00:10:32,830 --> 00:10:34,230 y otro más del dni 100 00:10:34,230 --> 00:10:59,409 Y vamos a llamarlo, por ejemplo, user1, 2, 3 y DNI. ¿De acuerdo? Bien, como me dice, vamos a comenzar. El nombre del usuario ha estado sonado por la primera letra del nombre. Pues la primera letra del nombre está claro que es nombre y ahora entre corchetes 0, porque el índice 0 corresponde a la primera letra, ¿de acuerdo? De la cadena de caracteres. 101 00:10:59,409 --> 00:11:11,629 Bien, para obtener después las tres primeras letras del apellido 1 y del apellido 2, tengo que utilizar el loncheado. 102 00:11:11,750 --> 00:11:14,970 Esto de aquí es un índice suelto, aquí vamos a utilizar dos índices. 103 00:11:15,129 --> 00:11:24,269 El primero es 0, ¿verdad?, porque es la primera letra, y el segundo, como queremos 3, tenemos que poner que sea el índice 3. 104 00:11:24,269 --> 00:11:39,450 ¿De acuerdo? ¿Por qué? Porque de esta forma va a coger el primero, recordad que he dicho que se incluye el primero, pero el segundo no, es decir, que el índice 0 se incluye, el índice 3 no, el índice 3 corresponde a la cuarta letra, si yo las cuento 1, 2, 3, 4, con lo cual tengo que poner 3. 105 00:11:39,450 --> 00:11:43,850 no sé si me he explicado, pero después lo vemos con el ejemplo para que quede más claro 106 00:11:43,850 --> 00:11:48,470 para la tercera parte del nombre de usuario 107 00:11:48,470 --> 00:11:52,549 sería apellido 2, por cierto que aquí arriba me he saltado el 1 108 00:11:52,549 --> 00:11:56,389 y exactamente igual del 0 a 3 para que coja los caracteres 109 00:11:56,389 --> 00:11:59,990 cuyos índices son 0, 1 y 2, las tres primeras letras 110 00:11:59,990 --> 00:12:03,470 porque el último no se incluye 111 00:12:03,470 --> 00:12:07,210 y ahora el único que tiene un poquito de truco que sería para el DNI 112 00:12:07,210 --> 00:12:23,450 En el caso del DNI, lo que tengo que hacer es coger la variable DNI y hacer una loncha un poquito más complicada, pero no tanto, porque lo que necesito es coger, a ver, y los tres últimos números del DNI sin la letra. 113 00:12:23,450 --> 00:12:44,360 Lo tengo que hacer en dos fases. Entonces primero le voy a quitar la letra, ¿de acuerdo? ¿Cómo? Pues así, de esta forma. ¿Veis? Lo que hago es una loncha, un trozo de cadena en el que cojo justamente desde cero hasta el penúltimo carácter. 114 00:12:44,360 --> 00:12:53,440 Para eso utilizo esta función, la función len, que me da, ya sabéis, la longitud de la cadena de caracteres, en este caso la del DNI. 115 00:12:53,440 --> 00:12:59,700 Con esto, con DNI num, tengo todos los caracteres del DNI excepto la letra, ¿de acuerdo? 116 00:12:59,879 --> 00:13:10,279 Y ya con esto tendría el usuario o la parte número 4, que sería DNI num, esta que acabamos de obtener quitándole la letra 117 00:13:10,279 --> 00:13:15,039 y en la que voy a coger justamente las tres últimas, no las tres primeras, ¿de acuerdo? 118 00:13:15,220 --> 00:13:19,019 Y eso lo puedo hacer de esta forma. Voy un poco rápido porque se me acaba el tiempo. 119 00:13:21,620 --> 00:13:24,419 lenDNINUM, ¿vale? 120 00:13:26,200 --> 00:13:34,379 Menos tres, dos puntos, lenDNINUM, ¿vale? 121 00:13:35,340 --> 00:13:38,519 Y ahora, para mostrar el usuario, para obtener el usuario, ¿de acuerdo? 122 00:13:38,519 --> 00:13:40,820 usuario, pues voy a unir las tres 123 00:13:40,820 --> 00:13:42,759 eso sí, utilizando el método lower 124 00:13:42,759 --> 00:13:44,779 para que sea en minúscula 125 00:13:44,779 --> 00:13:45,120 ¿de acuerdo? 126 00:13:47,200 --> 00:13:47,519 ¿vale? 127 00:13:54,919 --> 00:13:55,320 user 128 00:13:55,320 --> 00:13:57,460 tres, me voy, ¿verdad? 129 00:13:59,769 --> 00:14:00,929 punto lower 130 00:14:00,929 --> 00:14:02,509 más 131 00:14:02,509 --> 00:14:04,690 user 132 00:14:04,690 --> 00:14:06,470 cuatro 133 00:14:06,470 --> 00:14:08,990 y aquí no pongo 134 00:14:08,990 --> 00:14:10,350 lower porque son números, ¿verdad? 135 00:14:10,990 --> 00:14:13,190 y ahora si todo está bien 136 00:14:13,190 --> 00:14:17,450 Usuario, lo tendríamos así, ¿de acuerdo? 137 00:14:17,590 --> 00:14:20,330 Pues vamos a ejecutarlo, voy a hacer un poquito de sitio aquí 138 00:14:20,330 --> 00:14:25,289 Y pruebo con mis datos, ¿de acuerdo? 139 00:14:34,070 --> 00:14:37,769 Vale, pues aquí tenemos un nombre de usuario, ¿verdad? 140 00:14:37,769 --> 00:14:45,509 Ed Enrique, Ney de Neyra, Guz de Guzmán y 425, los tres últimos dígitos que he obtenido aquí, ¿de acuerdo? 141 00:14:45,929 --> 00:14:48,409 Bueno, pues justito, justito a tiempo 142 00:14:48,409 --> 00:14:51,870 si tenéis alguna duda respecto a esta parte 143 00:14:51,870 --> 00:14:55,690 pues luego en otro momento o en el aula virtual me lo escribís 144 00:14:55,690 --> 00:14:56,669 ¿de acuerdo? Gracias