Activa JavaScript para disfrutar de los vídeos de la Mediateca.
SESIÓN 3 -HP CODEWARS CON PYTHON - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Vamos a ir empezando. Buenas tardes a todos de nuevo. Ya hemos llegado más allá de la
00:00:00
mitad del camino. Estamos en la tercera sesión. Nos queda hoy el miércoles. Mucho ánimo
00:00:13
a todos. Las cinco personas que estamos aquí teníamos el otro día cuando estuvimos analizando
00:00:16
la última clase una duda existencial. Ahora nos diréis todos por el chat alguno por lo
00:00:22
menos. Al final, los dos días anteriores han interactuado siempre los mismos profesores.
00:00:27
Tenemos la duda de si el resto es que no está siguiendo, si vamos demasiado rápido. Nos
00:00:36
gustaría tener un poco más de feedback de todos aquellos que no habéis estado diciendo
00:00:43
a mí esto no me sale, esto sí ponemos, esto quitamos. Está claro que esas ocho o nueve
00:00:49
personas que nos habéis ido preguntando que lo vais siguiendo. De hecho, mucho mejor
00:00:53
que yo, por ejemplo. Pero claro, somos unos cuantos más. Entonces, tenemos miedo no estar
00:01:00
llegando a todos. Sería importante saberlo. Entonces, no sé. Yo podría decir nombres
00:01:10
aquí que no habéis participado en ningún momento, pero me parece una tontería. Simplemente
00:01:20
en este minuto primero o segundo, por favor, decidnos si vais bien, todo está bien y el
00:01:26
ritmo es bueno. Javier, muchas gracias. Es imposible, también es una realidad y vosotros
00:01:32
lo sabréis como profesores llegar a todos a la misma velocidad. Eso es muy difícil,
00:01:39
pero de lo que se trata es de llegar las mejores condiciones posibles a la mayoría. Entonces,
00:01:44
nos gustaría saber un poco que vais bien. Está claro que habrá gente que esté por
00:01:48
encima y unos cuantos como yo que estemos por debajo, a la cola del pelotón, por decirlo
00:01:56
de alguna manera, pero sería importante saber que los que estáis en el medio sois la mayoría
00:02:03
de vosotros. Entonces, mira, os dejamos como diez segundos
00:02:08
para que escribáis y decir, oye, vamos bien, no estamos aquí solamente perdiendo el tiempo,
00:02:14
son tres horas muy valiosas vuestras de una tarde de principio de semana que son duras.
00:02:18
Entonces, bueno, eso por ahí. Mientras nos escribís y nos decís algo, deciros también
00:02:23
que el profesor de hoy va a ser Guillermo Lastra, que Germán Alejandro y Guille Menguez nos están
00:02:30
acompañando un rato, hasta que puedan. Iremos contestando, como siempre, al chat según veamos
00:02:36
que podemos introducir esas preguntas. Para el miércoles, que sepáis que nos gustaría,
00:02:43
seguramente se lo demos a Sonia para que lo suba, una pequeña encuesta de cómo habéis encontrado
00:02:49
este curso de cuatro sesiones. Para nosotros es importante porque hemos dedicado esfuerzo,
00:02:56
entonces saber cómo lo hemos hecho. Y por último, bueno, adelantaros también que en función de
00:03:02
dónde lleguemos hoy, pues Guillermo Menguez, que será el profesor del último día, pues irá un poco
00:03:08
más para atrás y haremos más ejercicios o irá directamente a recursos, a inteligencia artificial
00:03:15
aplicada, a lo mejor a la formación de Python y alguna cosa más. A ver, tema de grabación es
00:03:23
importante. Si no han subido es porque nos habían dicho, y seguro que me lo dijeron a mí y se me
00:03:31
olvidó, Sonia y Arturo, que no podía pasar de 1000 megas. Entonces, no eran archivos comprimidos
00:03:37
y no podían subirlos. Ya los tenemos, los acabo de pasar a Sonia, o sea, que lo hará mañana cuando
00:03:45
pueda la sesión 1L2. Sonia, te lo acabo de compartir, esos archivos hace nada, hace 10-15 minutos,
00:03:51
o sea, ya estará. No teníamos la manera de comprimir porque no estamos acostumbrados, no tenemos esa
00:03:58
necesidad. Entonces, como ocupaba muchísimos megas, pues las herramientas gratuitas, ya sabéis que más
00:04:04
de 500 megas no se puede. Bueno, hemos tenido que hacer ahí alguna cosilla, pero ya está, o sea,
00:04:11
que perdonad que no hayan estado disponibles el fin de semana, pero no llegábamos. Por mi parte,
00:04:16
Guillermo, todo tuyo. Estupendo, ya veo que todo el mundo ha comentado más o menos que o conocían
00:04:23
Python o el ritmo es bueno. Vale, perfecto. Vale, pues nada, paso a compartiros. Os tendréis que
00:04:31
descargar el fichero con extensión IP de MB, ¿vale? Dirigiría a la MB. Una pregunta nada más, perdona,
00:04:42
Guille, que te interrumpa. Pregunta, Germán, las soluciones del primer día las tenemos, perdóname,
00:04:54
porque si están en el Teams no miréis, no se las he pasado. ¿Las paso ahora mismo o las subimos ahora?
00:04:58
Sí, sí que están ya, pero no las he subido al Teams. Ponlas en el Teams y se las enviamos a Sonia y ya
00:05:06
que lo vaya subiendo toda. Vale, perfecto. Pues eso, os descargaréis el fichero de teoría y ejercicio de aquí.
00:05:14
El día 3, ¿vale? Es el fichero que vamos a utilizar durante el día de hoy.
00:05:26
Y nada, continuaremos con el mismo entorno, el de Jupyter, ¿vale? Os dejo el link.
00:05:37
Para que podáis acceder y arrastréis o importar también se puede upload file el fichero en cuestión, ¿vale?
00:05:45
Y diciéndome si lo habéis podido importar bien, los que tengáis problemas por favor comentádnoslo por el chat y así podemos ayudar.
00:06:02
Si el tamaño de letra está bien, todo ese tipo de cosas.
00:06:23
Está en el cloud, en el cloud de Educamadrid, recursos, Python. Vale, letra más grande.
00:06:31
Teoría y ejercicios, el primer apartado.
00:06:47
Sí, efectivamente la sesión 3 corresponde a la sesión 2, efectivamente. La nuestra sería la 4.
00:06:55
¿Alguna más pregunta? Si podemos subirlo por aquí.
00:07:46
El último día lo compartimos por OneDrive, ¿puede ser Germán?
00:08:10
No, por WeTransfer.
00:08:17
Ah, por WeTransfer.
00:08:19
Que el chat aquí no permita juntar archivos.
00:08:21
Va a ser...
00:08:25
No puedo subir a WeTransfer, sí, sin ningún problema.
00:08:28
Vale.
00:08:32
Por si acaso, yo te dejo aquí el link de Educamadrid, por si acaso.
00:08:34
Porque se puede entrar como invitado, se puede descargar.
00:08:39
Vamos a darle a descargar.
00:08:53
Perfecto, estupendo.
00:09:02
Muy bien, pues en principio, si no me decís nada más, comienzo con la clase.
00:09:05
Haremos una pequeña revisión de todo lo que vimos el segundo día.
00:09:11
Comenzaremos por los condicionales.
00:09:18
Muy bien, pues nada.
00:09:23
Digamos que yo hice aquí una especie de ejercicio resumen, en el que vamos repasando un poco todo lo que hemos visto el día 2.
00:09:25
Para ello he hecho una pequeña revisión de todo lo que hemos visto el día 2.
00:09:38
Para ello he hecho una pequeña explicación.
00:09:48
Poco a poco vamos a ir viendo el código.
00:09:55
La primera parte es la de condiciones.
00:10:01
Queremos pedir una entrada en la taquilla.
00:10:04
Según la edad que tengamos, nos darán un precio para ese ticket.
00:10:09
Recordar que el igual es una asignación, entonces el número 6 está asignado a la variable edad.
00:10:18
Por tanto, lo primero que haremos será, una vez ya tenemos la variable establecida, compararemos.
00:10:28
Haremos una condición de comparación con el igual-igual.
00:10:34
Recordad que la función type nos devolvía qué tipo de variable es.
00:10:39
En este caso, al ser un 6, se entiende como un entero, un int.
00:10:48
Por tanto, la primera afirmación será correcta.
00:10:55
Podemos darle a ejecutar para comprobar que es el tipo correcto.
00:10:59
En caso contrario, el else es el que indica, en el caso defeccional, que no se cumplen las comparaciones anteriores.
00:11:05
Entonces se nos imprimirá un tipo erróneo.
00:11:16
Vamos a hacer la prueba.
00:11:19
Esto es un string, haremos tipo erróneo, y por tanto no podrá hacer la comparación, como indica aquí.
00:11:20
Volvemos.
00:11:40
Entonces, una vez ya tenemos establecido que el tipo es el correcto, pasamos a hacer la prueba.
00:11:41
Pasamos a comprobar la edad.
00:11:49
Lo primero que haremos será hacer un menor que.
00:11:53
Si en el caso de que la edad sea menor que 8, el precio será de 0.
00:11:56
Los niños tienen un precio de 0 euros.
00:12:00
El else if.
00:12:04
Recordemos que era como escribir un else if.
00:12:05
Entonces sería, en el caso de que edad menor que 8, es una condición.
00:12:10
En el caso de que si no se ha cumplido la anterior, vas a comprobar la siguiente.
00:12:16
La siguiente sería edad menor o igual que 18, o la edad es mayor que 64, el precio pasa a ser de 4 euros.
00:12:21
Y si no se ha cumplido ninguna de las anteriores, entonces el precio será de 10.
00:12:31
Y por último, utilizamos la función print, que nos escribirá por pantalla el precio de la entrada es,
00:12:38
el precio que le hemos establecido según la comparación que hemos hecho previamente.
00:12:46
Hasta aquí la comparación, muy sencillita.
00:12:59
Pasamos a bucles.
00:13:03
Vimos el for y el while.
00:13:07
El while era el que estaba comprobando constantemente, era el más sencillito de idealizar,
00:13:11
ya que tenía una manera de comportarse muy similar a cómo pensamos nosotros, los humanos.
00:13:16
Y luego el for, que es el que nosotros le decimos el rango que tiene que ir recorriendo.
00:13:26
Nosotros, por ejemplo, si establecemos una palabra, vamos a poner frase, más bien recorrer esta frase.
00:13:34
La función range es la que genera un array de enteros hasta el número que le indiquemos.
00:13:48
Dentro tenemos len, que es otra función que nos indicaba el tamaño de esa frase, de ese objeto.
00:13:56
Si tenemos alguna duda, le damos a ejecutar.
00:14:06
Si tenemos alguna duda, le damos a ejecutar.
00:14:36
A ver si se me vuelve loco, vamos a resetearlo.
00:14:57
Ah, que eran tres cerraduras.
00:15:00
Bueno, se me ha ejecutado.
00:15:08
Vale, el rango es de 0 a 19. Tenemos aquí 20 letras.
00:15:29
Por eso el for lo que va a hacer es recorrer el índice, desde 0 hasta 19.
00:15:45
Entonces va a ir recorriendo, va a coger el objeto frase y el índice de 0 a 19, va a ir pasándole el número
00:16:06
y entre corchetes lo que indicamos es qué posición del índice de toda esta cadena vamos a ir imprimiendo.
00:16:20
Por tanto, lo que ya estamos viendo es el 0, el 1, el 2, el 3 y así, consecutivamente.
00:16:29
Con el while sucede lo siguiente, tenemos un i, establecemos una variable de índice, para ser más claros.
00:16:38
Vamos a establecer una condición, mientras el índice sea menor que 3, hacemos la ejecución que nosotros queramos.
00:16:49
En este caso sería imprimir índice. Imprimimos el índice y posteriormente hacemos un incremento de 1.
00:16:59
Esto sería lo mismo que decir índice es igual a índice más 1. Es lo mismo que decir lo que teníamos antes,
00:17:15
índice más igual 1. De una manera abreviada, pero a fin de cuentas es lo mismo.
00:17:28
Por tanto, eso se nos imprimirá todos los números menores que 3. El 0, el 1 y el 2.
00:17:40
Muy bien, hasta aquí los bucles. Vemos que no tiene mucha historia.
00:17:48
Listas y tuplas. Las listas, como conocemos, son un conjunto de objetos siempre del mismo tipo y las tuplas puedes almacenar más de un tipo.
00:18:01
El ejemplo que hemos establecido es el de tener una lista de ingredientes para elaborar una lenteja, por ejemplo,
00:18:14
Entonces tenemos la asignación y cuando queremos añadir un objeto, establecer una serie de cadenas, por ejemplo en este caso,
00:18:24
entre corchetes, importante, y dentro, separado por comas, todas las variables, en este caso todos los strings, escribiéndolos.
00:18:41
Para obtener una sección, por ejemplo, un substring, una sección de todo este objeto, podemos abrir corchetes,
00:18:57
indicarle el valor inicial, dos puntos y el valor final. Y diréis, ¿dónde está el valor final?
00:19:11
Cuando no le indicamos nada, entonces lo que significa es, coge todo, digamos, si yo le indico aquí del nada al 4,
00:19:19
entonces nos cogerá del primero que obtenga al número 4. Tener en cuenta que en este caso cebolla va a ser el 0.
00:19:31
Entonces 0, 1, 2, 3 y 4, hasta zanahoria.
00:19:40
Coge cebolla, aceite, ajo y pimentón. Zanahoria no lo incluye.
00:19:51
Hacemos lo contrario, del 4 al vacío.
00:19:58
O bueno, del 4 al 5, entonces recogería 1, solamente zanahoria, ¿veis? Está en la posición.
00:20:03
Esto para obtener una sección de este listado.
00:20:13
Si queremos eliminar un objeto, entonces tendríamos que utilizar el nombre del listado, el punto y posteriormente la acción que queremos realizar,
00:20:21
en este caso remove, que es el que nos va a permitir eliminar un elemento y tenemos que escribir concretamente el objeto que está añadido.
00:20:37
Entonces nos va a eliminar pimentón. En este listado ya no está pimentón, ¿veis?
00:20:47
Muy bien, ingredientes.pop. Esta acción lo que hace es eliminar el último elemento que tenemos, que en este caso sería jamón,
00:20:54
ya deja de estar en el listado. Lo imprimimos, somos capaces de obtenerlo, pero la siguiente vez que imprimamos ya no está jamón.
00:21:04
¿Qué queremos añadir? Un nuevo ingrediente, pero en este caso insert, la acción insert nos permite hacerlo en una posición indicada, en este caso el 0, por ejemplo.
00:21:17
Entonces lo añadirá el primero de la lista. Ahí lo tenemos, el 0.
00:21:34
Y por último, la última acción que os enseñaré, os recordaré, será la del reverse. Esta es la que nos permite voltear toda la lista, cambiar el orden.
00:21:40
Por lo tanto, lentejas, que era el último, pasa a ser el primero y así sucesivamente.
00:21:52
Tampoco me he metido mucho en tuplas, ya que no es algo que se utilice mucho, así que simplemente mencionar que existen y que el indicador para establecer una tupla es el paréntesis.
00:21:59
Y dentro meteremos los objetos que deseemos. Ya veis que aquí podemos introducir una cadena de string, un entero, un booleano e imprimirlo por pantalla.
00:22:13
Muy bien, hasta aquí el repaso. Hoy lo que veremos será diccionarios, funciones, parámetros y argumentos, módulos y clases.
00:22:26
Muy bien, hasta aquí todo bien.
00:22:41
¿Qué pasa si no se ha firmado la entrada, Sonia?
00:22:44
Bueno, vamos a ver si lo ve. También me he olvidado. ¿Se ha olvidado? ¿Firmó la salida? Ah, que firma la salida, vale.
00:23:14
Ya lo estáis viendo, los que no o las que no habéis firmado, firmarán la salida. Y ahora ya, seguimos.
00:23:26
¿Qué quiere decir la última instrucción, Guille?
00:23:34
Sí, nada, es el salto de línea. Esa es la expresión que he utilizado para que se viese más bonito a la salida.
00:23:37
Quería separar lo que eran las listas de lo que eran las tuplas y por tanto hice un print L barra N, barra invertida N, que eso es el salto de línea.
00:23:44
Sin más, me he atentado.
00:23:58
Muy bien, pues nada, pasamos a explicar los diccionarios.
00:24:08
Los diccionarios son estructuras más flexibles a lo que hemos visto anteriormente como son las listas y las tuplas
00:24:14
y bastante organizadas ya que utilizan identificadores o claves a las que le podemos asignar un valor.
00:24:25
Entonces utilizan esa estructura de clave-valor en la que podemos darle un nombre estratégico y único a cada uno de nuestros valores,
00:24:36
de manera que podemos acceder más rápidamente.
00:24:49
¿Qué más? Bueno, eso, que son más dinámicos ya que nos permiten eliminar y obtener información más rápidamente.
00:24:52
Lo que se explicaba que están indexados, que es la palabra técnica, que tienen una clave, una key específica y única para cada uno de los elementos.
00:25:03
No podemos repetir dos claves.
00:25:16
Y eso que podemos anidar, importante, se pueden anidar unos dentro de otros y podemos hacerlos tan grandes como queramos.
00:25:21
A través de estos símbolos, de estas llaves, podemos indicar, en este caso es un diccionario vacío al que hemos asignado a la variable alumno
00:25:32
y nada, posteriormente, como podéis ver aquí, le estableceremos una clave que será el nombre, en este caso.
00:25:48
Importante que sean string. He probado a utilizar enteros y funciona, pero no os lo recomiendo.
00:25:57
No sé si será cosa del programa o tal, pero lo que yo he visto siempre es que siempre son cadenas de string y por tanto es lo que deberíamos utilizar.
00:26:06
Luego el valor, podemos utilizar el tipo que queramos.
00:26:19
Y por tanto eso, separado siempre por los dos puntos, importante, la clave de valor.
00:26:24
Y este es el primer ejemplo que vamos a utilizar, el de alumno, nombre Juanito, edad 25 años y ciudad León, por ejemplo.
00:26:31
Si imprimimos, veremos que se imprime todo el objeto, las llaves, clave valor, coma, clave valor, coma, clave valor, en esta estructura.
00:26:43
Formas de acceder al diccionario. Tenemos dos, por suerte, una es por medio de los corchetes estos y dentro estableceremos la clave que nos devolverá el valor.
00:26:57
Si lo ejecutamos, nos devolverá 25, ya que la edad era de 25 años, o también podemos usarlo con alumno.get.
00:27:18
Esta función nos devuelve, pasándole como parámetro, pasándole el nombre dentro de los paréntesis de la función get, nos devolverá el objeto, ciudad León.
00:27:38
Para añadir objetos es muy sencillito, ya que simplemente si nosotros abrimos con los corchetes y metemos un texto, una clave que no existía, como es, por ejemplo, teléfono, no existía dentro del alumno, pues nos lo añade, así de sencillo, no tiene más misterio.
00:27:55
Aquí vemos que efectivamente nos ha escrito el teléfono, es un entero, un número entero, nos lo ha escrito.
00:28:17
Si queremos modificar algo, por ejemplo, que en la base de datos del colegio se han equivocado, que el chaval no tenía 25 años, tenía 15, pues perfectamente podemos buscar dentro de los corchetes la clave edad igual de asignación y el 15.
00:28:28
De esta manera nos va a modificar la edad.
00:28:49
Ahora ya aparece como 15.
00:28:55
Y por último, para eliminar el dato, utilizaremos del. Es verdad que es diferente a todo lo que hemos visto hasta ahora.
00:28:59
Utilizamos esta palabra reservada por Python, por la cual si le pasamos lo que queremos eliminar, en este caso es dentro del diccionario alumno, la clave teléfono nos la eliminará.
00:29:09
Es un poco diferente, pero bueno.
00:29:26
Más, lo que os explicaba antes, los diccionarios también pueden anidarse.
00:29:31
Aquí, por ejemplo, podemos añadirle información sobre el colegio del alumno.
00:29:37
Entonces establecemos un diccionario, que es el que luego vamos a asignar al diccionario alumno, con la clave colegio, y dentro especificamos la misma estructura, clave valor de nombre leonés, por ejemplo, calle José Aguado.
00:29:45
Vale, inspección, otra clave, pues está pasada la inspección del colegio, perfecto.
00:30:10
Eso, el acceso a los diccionarios es igual que hemos visto antes, igual que accedíamos a una clave dentro de un alumno, esto es secuencial, entonces accederemos una dentro de otra, vamos a ir accediendo.
00:30:19
Y esto infinitamente, entonces en este caso vamos a acceder al colegio, a la clave colegio, y dentro de él a la clave calle, nos tiene que devolver José Aguado, perfecto, todo bien.
00:30:34
Imaginaos que vosotros tenéis el nombre de la clave a la que queréis acceder, digamos que la tenéis almacenada en una variable.
00:30:50
Os he puesto este ejemplo, que tenemos un listado en el que va a ir recorriendo, digamos que tienes almacenados donde queremos acceder, queremos acceder a la clave colegio y después a la clave calle.
00:31:12
Digamos que en vez de meterse los corchetes y el nombre en cuestión, accederemos por ejemplo al listado, al índice cero del listado, de la misma manera que podríamos tener una variable, colegio,
00:31:28
primero aquí,
00:31:48
segundo aquí,
00:31:58
y tercero aquí.
00:32:18
Y de esta manera también podemos acceder
00:32:41
a la información que tenemos anidada dentro del diccionario.
00:32:43
Más cositas, esto es muy útil ya que podemos comprobar si existe una key, entonces podemos pasarle este condicional,
00:32:54
ir, el texto, la clave que queremos comprobar, in, está dentro del diccionario alumno, el alumno tiene asignado colegio.
00:33:04
En caso contrario,
00:33:19
tabulamos bien el alumno, no tiene colegio asignado.
00:33:34
También podemos iterar sobre los diccionarios con el for, si le pasamos el for, por ejemplo, hemos puesto recoger el diccionario del colegio,
00:33:47
y le hemos pasado una variable, esto es una manera de no tener que estar escribiendo constantemente alumno, entre corchetes colegio, entre corchetes lo que queramos,
00:34:10
en este caso para abreviar, lo que hacemos es pasarle una variable y jugar con el colegio.
00:34:22
Sería lo mismo que hacer aquí esto y esto, solo que se lo estamos pasando una variable para ayudar más a la hora de leer el código.
00:34:31
Y de esta forma vais recorriendo cada una de las claves, digamos que cuando no le indicamos nada, lo que va a recorrer son las claves, va a recorrer el nombre, calle, inspección.
00:34:44
La iteración se puede hacer o bien de esta manera, para comprobar las claves, bien con esta llamada, si le pasamos el punto values, esto lo que nos permite es acceder a los valores, específicamente a los valores.
00:35:04
Entonces si le ejecutamos el colegio, ejecutamos, ahí estaría.
00:35:24
Entonces ya nos va devolviendo Leones, José Aguado y True, esos son los tres valores que tenemos para el colegio, Leones, José Aguado y True.
00:35:51
Entonces si queremos obtener algo, pues esta es la manera. Y si queremos obtener ambos, utilizaremos items, esto lo que nos permite es que nos devuelva por cada iteración dos variables, una es clave y otra es valor.
00:36:06
De esta manera podemos ir imprimiendo eso, podemos obtener en la misma iteración los dos valores, la información de los dos, la clave y el valor.
00:36:28
Porque claro, de estas únicamente obteníamos uno.
00:36:39
Y nada, por fin llega el primer ejercicio.
00:36:43
Vamos a respirar, espera un momento, vamos a respirar.
00:36:48
Hay un par de personas, por lo menos, que tenían problemas para ejecutar esta Alejandro y esta Germán, intentando a ver si lo solucionan.
00:36:52
Bien, por no dejar perdido algo que nos habían pedido, que yo creo que si os parece bien, chicos, lo podríamos hacer o justo antes del descanso o justo después,
00:37:04
el explicar un poco cómo funciona Jupiter y de qué manera se pueden descargar y presentar a los alumnos, si es que se puede trabajar en los centros con él.
00:37:15
Si os parece, lo podemos dejar a lo mejor para empezar la segunda parte de esta tarde de hoy, ¿cómo te parece, Guille?
00:37:24
Bien.
00:37:31
¿Qué significa la F? Creo que era lo único que nos quedaba.
00:37:36
¿Era la pregunta?
00:37:39
Contestar.
00:37:40
Vale, vale, vale.
00:37:41
A ver, hay varias maneras de imprimir.
00:37:42
Digamos que podríamos imprimir, es lo que se llama en Python FString.
00:37:45
Es una manera de especificar, digamos, de hacer en una sola línea todo, en vez de...
00:37:53
Esto sería lo mismo que print clave más comillas dos puntos más valor, ¿vale?
00:38:00
Así. Esto es lo que conocíamos hasta ahora, ¿vale?
00:38:15
Y con el F lo que hacemos es, todo lo que metamos entre corchetes serán nombres de variables, ¿vale?
00:38:19
Entonces, si especificamos aquí antes de las comillas, la F se convertirá en un FString y por tanto todo lo que metamos entre corchetes serán variables
00:38:24
y lo que no será texto a imprimir tal cual.
00:38:35
Ehm...
00:38:40
¿Vale?
00:38:42
Eso es porque no está... no está bien.
00:38:43
Eso es porque tenemos que hacer una... clave.
00:38:59
Y aquí le vamos a meter un valor más.
00:39:10
Sdr, lo convertimos todo a...
00:39:16
A darle... ahí estaría.
00:39:22
Vale, sería lo mismo.
00:39:24
Digamos que al tener un booleano, lo que me está obligando es hacer un casting.
00:39:26
Lo que aprendimos con Germán era que haciendo un casting convertimos todo lo que sea en un String, ¿vale?
00:39:33
Porque claro, no podemos concatenar, no podemos hacer más algo si no es del mismo tipo, porque si no se vuelve loco.
00:39:44
El F lo que nos permite es eso, no tener que estar aquí pues haciendo castings ni cosas raras.
00:39:53
Él ya es listo y sobreentiende todo.
00:39:59
Vale.
00:40:04
Javier y Madrid, ¿habéis podido solucionar el tema de la impresión de ejecutar?
00:40:05
No sé si Germán y Alejandro si lo hacéis en... si les habéis ayudado por interno.
00:40:13
No, no ha habido más mensajes al menos. A mí no me ha llegado nada más.
00:40:23
Vale, veo que el único problema era del Kerner, ¿no?
00:40:27
Sí, le pasaba a los dos yo creo, ¿no?
00:40:31
Había dicho Alejandro que abriera una pestaña de incógnito para que se borraran las cookies, no sé si lo han hecho o no.
00:40:36
Bueno, seguimos, vamos con el ejercicio y mientras estén Alejandro y Germán, si podéis ayudarles, os lo agradecemos, ¿vale?
00:40:42
El archivo no está corrupto.
00:40:57
Se ha pillado el tema de las cookies, ¿no? Ha tardado mucho en responder, tras estar con un rato ha terminado respondiendo.
00:41:01
Vale, y había otra persona que aparece como Madrid también, que estaba ahí atascada.
00:41:08
Bueno, y adelante ya intentamos ayudarles por interno, ¿vale?
00:41:19
Vale, perfecto. Nada, entonces procedemos con el primer ejercicio, ¿vale? Os explico un poco.
00:41:24
Hemos añadido, digamos que tenemos un diccionario, con lo que veis, tenemos la estructura que hemos visto hasta ahora, que era la de clave y valor.
00:41:34
Pues tenemos título, el que sea, año, 1999, director, Peter Jackson, género, X, ¿no?
00:41:43
Tenemos varios tipos, actores principales, que es un listado, tenemos clasificación, que es un entero, comentarios, aquí tenemos anidado, otro diccionario.
00:41:51
Con los diferentes comentarios, pues eso, Anónimo 1, dice que se durmió.
00:42:02
Y Juanito, que no se enteró de lo que iba la película.
00:42:09
Nada, nos he puesto aquí una serie de correcciones, ya que al introducirlo a la base de datos, pues hemos cometido errores, ¿vale?
00:42:15
Entonces lo que vamos a hacer es utilizar las secuencias, las acciones que hemos aprendido antes, para que la película cambie el año, ¿vale?
00:42:24
Para que no sea 1999, sino que sea 2001. Añadamos un nuevo actor principal, que es Ian Mckellen, ¿vale?
00:42:35
Vamos a imprimir por pantalla los nombres de los asistentes, entre paréntesis he puesto que son las claves de los comentarios, ¿vale?
00:42:46
Anónimo 1 y Juanito, clave, valor, os pido estos dos, los imprimáis por pantalla, Anónimo 1 y Juanito.
00:42:56
Eliminemos los comentarios, ¿vale? No quede constancia de ellos en el diccionario y imprimamos todo por pantalla.
00:43:05
Y nada, os vamos a dejar unos minutos para que podáis realizar el ejercicio tranquilamente.
00:43:15
Subtítulos por la comunidad de Amara.org
00:43:45
Subtítulos por la comunidad de Amara.org
00:44:15
Subtítulos por la comunidad de Amara.org
00:44:45
Subtítulos por la comunidad de Amara.org
00:45:15
Subtítulos por la comunidad de Amara.org
00:45:45
Subtítulos por la comunidad de Amara.org
00:46:15
Subtítulos por la comunidad de Amara.org
00:46:45
Subtítulos por la comunidad de Amara.org
00:47:15
Subtítulos por la comunidad de Amara.org
00:47:45
Subtítulos por la comunidad de Amara.org
00:48:15
Subtítulos por la comunidad de Amara.org
00:48:45
Subtítulos por la comunidad de Amara.org
00:49:15
Subtítulos por la comunidad de Amara.org
00:49:45
Subtítulos por la comunidad de Amara.org
00:50:15
Subtítulos por la comunidad de Amara.org
00:50:45
Subtítulos por la comunidad de Amara.org
00:51:15
Subtítulos por la comunidad de Amara.org
00:51:45
Subtítulos por la comunidad de Amara.org
00:52:15
Subtítulos por la comunidad de Amara.org
00:52:45
Subtítulos por la comunidad de Amara.org
00:53:15
Subtítulos por la comunidad de Amara.org
00:53:45
Subtítulos por la comunidad de Amara.org
00:54:15
Subtítulos por la comunidad de Amara.org
00:54:45
Subtítulos por la comunidad de Amara.org
00:55:15
Subtítulos por la comunidad de Amara.org
00:55:45
Subtítulos por la comunidad de Amara.org
00:56:15
Subtítulos por la comunidad de Amara.org
00:56:45
Subtítulos por la comunidad de Amara.org
00:57:15
Subtítulos por la comunidad de Amara.org
00:57:45
Subtítulos por la comunidad de Amara.org
00:58:15
Subtítulos por la comunidad de Amara.org
00:58:45
Subtítulos por la comunidad de Amara.org
00:59:15
Subtítulos por la comunidad de Amara.org
00:59:45
Subtítulos por la comunidad de Amara.org
01:00:15
Subtítulos por la comunidad de Amara.org
01:00:45
Subtítulos por la comunidad de Amara.org
01:01:15
Subtítulos por la comunidad de Amara.org
01:01:45
Subtítulos por la comunidad de Amara.org
01:02:15
Subtítulos por la comunidad de Amara.org
01:02:45
Subtítulos por la comunidad de Amara.org
01:03:15
Subtítulos por la comunidad de Amara.org
01:03:45
Subtítulos por la comunidad de Amara.org
01:04:15
Subtítulos por la comunidad de Amara.org
01:04:45
Subtítulos por la comunidad de Amara.org
01:05:15
Subtítulos por la comunidad de Amara.org
01:05:45
Subtítulos por la comunidad de Amara.org
01:06:15
Subtítulos por la comunidad de Amara.org
01:06:45
Subtítulos por la comunidad de Amara.org
01:07:15
Subtítulos por la comunidad de Amara.org
01:07:45
Subtítulos por la comunidad de Amara.org
01:08:15
Subtítulos por la comunidad de Amara.org
01:08:45
Subtítulos por la comunidad de Amara.org
01:09:15
Subtítulos por la comunidad de Amara.org
01:09:45
Subtítulos por la comunidad de Amara.org
01:10:15
Subtítulos por la comunidad de Amara.org
01:10:45
Subtítulos por la comunidad de Amara.org
01:11:15
Subtítulos por la comunidad de Amara.org
01:11:45
Subtítulos por la comunidad de Amara.org
01:12:15
Subtítulos por la comunidad de Amara.org
01:12:45
Subtítulos por la comunidad de Amara.org
01:13:15
Subtítulos por la comunidad de Amara.org
01:13:45
Subtítulos por la comunidad de Amara.org
01:14:15
Subtítulos por la comunidad de Amara.org
01:14:45
Subtítulos por la comunidad de Amara.org
01:15:15
Subtítulos por la comunidad de Amara.org
01:15:45
Subtítulos por la comunidad de Amara.org
01:16:15
Subtítulos por la comunidad de Amara.org
01:16:45
Subtítulos por la comunidad de Amara.org
01:17:15
Subtítulos por la comunidad de Amara.org
01:17:45
Subtítulos por la comunidad de Amara.org
01:18:15
Subtítulos por la comunidad de Amara.org
01:18:45
Subtítulos por la comunidad de Amara.org
01:19:15
Subtítulos por la comunidad de Amara.org
01:19:45
Subtítulos por la comunidad de Amara.org
01:20:15
Subtítulos por la comunidad de Amara.org
01:20:45
Subtítulos por la comunidad de Amara.org
01:21:15
Subtítulos por la comunidad de Amara.org
01:21:45
Subtítulos por la comunidad de Amara.org
01:22:15
Subtítulos por la comunidad de Amara.org
01:22:45
Subtítulos por la comunidad de Amara.org
01:23:15
Subtítulos por la comunidad de Amara.org
01:23:45
Subtítulos por la comunidad de Amara.org
01:24:15
Subtítulos por la comunidad de Amara.org
01:24:45
Subtítulos por la comunidad de Amara.org
01:25:15
Subtítulos por la comunidad de Amara.org
01:25:18
Subtítulos por la comunidad de Amara.org
01:25:45
Subtítulos por la comunidad de Amara.org
01:26:15
Subtítulos por la comunidad de Amara.org
01:26:45
Subtítulos por la comunidad de Amara.org
01:27:15
Subtítulos por la comunidad de Amara.org
01:27:45
Subtítulos por la comunidad de Amara.org
01:28:15
Subtítulos por la comunidad de Amara.org
01:28:45
Subtítulos por la comunidad de Amara.org
01:29:15
Subtítulos por la comunidad de Amara.org
01:29:45
Subtítulos por la comunidad de Amara.org
01:30:15
Subtítulos por la comunidad de Amara.org
01:30:45
Subtítulos por la comunidad de Amara.org
01:31:15
Subtítulos por la comunidad de Amara.org
01:31:45
Subtítulos por la comunidad de Amara.org
01:32:15
Subtítulos por la comunidad de Amara.org
01:32:45
Subtítulos por la comunidad de Amara.org
01:33:15
Subtítulos por la comunidad de Amara.org
01:33:45
Subtítulos por la comunidad de Amara.org
01:34:15
Subtítulos por la comunidad de Amara.org
01:34:45
Subtítulos por la comunidad de Amara.org
01:35:15
Subtítulos por la comunidad de Amara.org
01:35:45
Subtítulos por la comunidad de Amara.org
01:36:15
Subtítulos por la comunidad de Amara.org
01:36:45
Subtítulos por la comunidad de Amara.org
01:37:15
Subtítulos por la comunidad de Amara.org
01:37:45
Subtítulos por la comunidad de Amara.org
01:38:15
Subtítulos por la comunidad de Amara.org
01:38:45
Subtítulos por la comunidad de Amara.org
01:39:15
Subtítulos por la comunidad de Amara.org
01:39:45
Subtítulos por la comunidad de Amara.org
01:40:15
Subtítulos por la comunidad de Amara.org
01:40:45
Subtítulos por la comunidad de Amara.org
01:41:15
Subtítulos por la comunidad de Amara.org
01:41:45
Subtítulos por la comunidad de Amara.org
01:42:15
Subtítulos por la comunidad de Amara.org
01:42:45
Subtítulos por la comunidad de Amara.org
01:43:15
Subtítulos por la comunidad de Amara.org
01:43:45
Subtítulos por la comunidad de Amara.org
01:44:15
Subtítulos por la comunidad de Amara.org
01:44:45
Conocemos todas las funciones y qué es un parámetro y cómo pasárselo.
01:45:15
Entonces tenemos un diccionario armario que lo tenemos aquí abajo,
01:45:21
en el que tenemos pantalones con su talla y el color.
01:45:27
Entonces lo que vamos a hacer es lo siguiente.
01:45:33
Tenemos la estructura clave valor, queremos implementar una función que añada la ropa
01:45:38
que pasemos como parámetros, el nombre, talla y color.
01:45:43
Por defecto el color va a ser negro, es una persona que le gusta la ropa oscura,
01:45:48
entonces vamos a poner el valor por defecto.
01:45:54
Se devolverán dos parámetros, un booleano, que indica si todo ha ido bien en el proceso
01:46:00
y los detalles, qué ha pasado, qué ha sucedido.
01:46:06
Casuísticas que queremos contemplar, si algún campo está vacío devolveremos false,
01:46:13
en el booleano devolveremos un false y el texto, algún campo está vacío.
01:46:20
Si existe la prenda que queremos añadir, entonces devolveremos false,
01:46:28
la prenda ya está en el armario, pero tienen que cumplirse las tres condiciones
01:46:36
que exista en esta clave, en la clave pantalones,
01:46:40
que sea la misma talla y el mismo color.
01:46:45
Tienen que cumplirse estas tres condiciones.
01:46:48
Porque claro, si la talla es distinta o si el color es distinto, ya por tanto cambia.
01:46:53
Y si no existe, la creamos, añadimos un nuevo elemento.
01:47:00
Este como primer ejercicio.
01:47:07
Y luego como segundo ejercicio, os he añadido unas pequeñas pautas,
01:47:10
pero tampoco os sintáis obligados a hacerlo.
01:47:22
Esto, sobre todo este ejercicio, lo veo más útil para los chavales.
01:47:27
Este ejercicio de poder encriptar información de manera sencilla,
01:47:33
yo creo que les va a atraer mucho y por eso os lo he dejado aquí,
01:47:39
porque creo que va a captar la atención de los alumnos
01:47:43
y si en algún momento lo queréis utilizar por algo,
01:47:48
este ejercicio creo yo personalmente que va a atraer bastante.
01:47:52
Es crear una función que encripte el texto que le pasemos por parámetro.
01:48:00
Para ello tenemos una función que permite pasarle un texto
01:48:06
y devuelva el texto encriptado.
01:48:11
Aquí os explico que vamos a utilizar la encriptación CESAR,
01:48:15
que consiste en lo que vemos aquí en la imagen,
01:48:20
en convertir la A en una D en este caso,
01:48:23
pero vamos a hacer nada más de un valor.
01:48:28
La A sería la B, la B la C y así sucesivamente.
01:48:31
Entonces vamos a tener que ir recorriendo el texto.
01:48:35
Recorremos la frase que le hemos pasado por parámetro,
01:48:39
vamos a ir recorriendo carácter a carácter y vamos a ir sumándole 1.
01:48:48
¿Cómo sumamos 1?
01:48:52
Pues resulta que, os lo añado aquí en el comodín,
01:48:54
todos los caracteres en verdad son números,
01:48:59
están representados en una tabla así.
01:49:02
Entonces, por ejemplo, el espacio sería el número 32.
01:49:05
Entonces tenemos que saber cómo cambiar de un carácter al número
01:49:10
y el número al carácter.
01:49:15
De esta manera, y por eso se han añadido aquí las funciones.
01:49:18
ORD, la función ORD, le pasamos por parámetro el carácter
01:49:24
y nos devolverá el número decimal.
01:49:30
Luego CHR hará el proceso inverso, de número a carácter.
01:49:36
Entonces el ejercicio es ir recorriendo esa frase,
01:49:42
cambiar carácter a carácter, ir guardándolo
01:49:46
y cambiándolo por 1 a la derecha.
01:49:51
Lo que sería sumarle 1 a este decimal.
01:49:57
Si, por ejemplo, le metemos en la cadena el carácter 4,
01:50:01
que lo cambie por el carácter 5, de esta manera.
01:50:05
Sumamos 1, 52 a 53.
01:50:09
Os voy a dejar 10 minutines para que hagáis el ejercicio.
01:50:12
Y os digo, este, si os lo veis muy complicado, no pasa nada.
01:50:15
Ya os lo explico yo luego.
01:50:19
Así que nada, os dejo 10 minutines y hacéis los ejercicios.
01:50:22
Subtítulos realizados por la comunidad de Amara.org
01:50:52
Subtítulos realizados por la comunidad de Amara.org
01:51:22
Subtítulos realizados por la comunidad de Amara.org
01:51:52
Subtítulos realizados por la comunidad de Amara.org
01:52:22
Subtítulos realizados por la comunidad de Amara.org
01:52:52
Subtítulos realizados por la comunidad de Amara.org
01:53:22
Subtítulos realizados por la comunidad de Amara.org
01:53:52
Subtítulos realizados por la comunidad de Amara.org
01:54:22
Subtítulos realizados por la comunidad de Amara.org
01:54:52
Subtítulos realizados por la comunidad de Amara.org
01:55:22
Subtítulos realizados por la comunidad de Amara.org
01:55:52
Subtítulos realizados por la comunidad de Amara.org
01:56:22
Subtítulos realizados por la comunidad de Amara.org
01:56:52
Subtítulos realizados por la comunidad de Amara.org
01:57:22
Subtítulos realizados por la comunidad de Amara.org
01:57:52
Subtítulos realizados por la comunidad de Amara.org
01:58:22
Subtítulos realizados por la comunidad de Amara.org
01:58:52
Subtítulos realizados por la comunidad de Amara.org
01:59:22
Subtítulos realizados por la comunidad de Amara.org
01:59:52
Subtítulos realizados por la comunidad de Amara.org
02:00:22
Subtítulos realizados por la comunidad de Amara.org
02:00:52
Subtítulos realizados por la comunidad de Amara.org
02:01:22
Subtítulos realizados por la comunidad de Amara.org
02:01:52
Subtítulos realizados por la comunidad de Amara.org
02:02:22
Subtítulos realizados por la comunidad de Amara.org
02:02:52
Subtítulos realizados por la comunidad de Amara.org
02:03:22
Subtítulos realizados por la comunidad de Amara.org
02:03:52
Subtítulos realizados por la comunidad de Amara.org
02:04:22
Subtítulos realizados por la comunidad de Amara.org
02:04:52
Subtítulos realizados por la comunidad de Amara.org
02:05:22
Subtítulos realizados por la comunidad de Amara.org
02:05:52
Subtítulos realizados por la comunidad de Amara.org
02:06:22
Subtítulos realizados por la comunidad de Amara.org
02:06:52
Subtítulos realizados por la comunidad de Amara.org
02:07:22
Subtítulos realizados por la comunidad de Amara.org
02:07:52
Subtítulos realizados por la comunidad de Amara.org
02:08:22
Subtítulos realizados por la comunidad de Amara.org
02:08:52
Subtítulos realizados por la comunidad de Amara.org
02:09:22
Pantalones
02:09:52
Un XL
02:10:03
Y va a ser azul
02:10:07
Y va a ser azul
02:10:22
No sé por qué es igual a color
02:10:28
No, lo que estamos es estableciendo la nueva talla
02:10:31
Porque ya estamos viendo que si no se ha cumplido ninguna de estas condiciones
02:10:35
O sea, si no existe, en el caso de que no exista, la añadimos
02:10:41
Entonces, para añadir algo, lo que hacemos es crear el nuevo, talla
02:10:47
Lo que nos pasen por parámetro, el texto, se añadirá al diccionario
02:10:54
Pasarás y lo veremos ahora, mira
02:10:59
Si creo pantalones ya existe, vale
02:11:01
Va a entrar en esta función y va a decirle talla
02:11:04
Esta condición no se va a cumplir
02:11:09
En pantalones no hay un XL
02:11:11
No hay una clave XL, con lo cual aquí no va a entrar, vale
02:11:14
Va a entrar aquí en el else
02:11:18
Si no se ha cumplido algo de aquí, entonces se mete aquí
02:11:20
Añade la talla y le asigna el color, vale
02:11:25
Por último
02:11:32
Print
02:11:38
Juliano
02:11:40
Print
02:11:42
Detalles
02:11:44
Lo verás ahora mismo
02:11:46
Primero cargamos armario
02:11:48
True, la pregunta está añadida
02:11:52
Nos hemos equivocado y le hemos pasado una variable vacía
02:11:58
Pues, false, algún campo está vacío
02:12:02
Por ejemplo, imaginaos que hemos pasado algo que no es falda
02:12:07
No es falda azul, vale
02:12:14
Entonces
02:12:17
True, la pregunta está añadida
02:12:20
Vamos a ver la salida
02:12:22
Print
02:12:25
Vale
02:12:27
Y armario
02:12:29
Vale, entonces ahora tendríamos pantalones
02:12:36
Tendríamos una S, negro, un XL, azul
02:12:38
Una falda, que es la nueva que hemos añadido, XL, azul
02:12:43
Vale
02:12:50
Este sería el primer ejercicio
02:12:54
El segundo
02:12:56
Vamos a ver
02:13:00
Vale
02:13:03
Entonces vamos a crear la función tef
02:13:05
Encriptar
02:13:10
Tenemos que pasar un texto
02:13:12
Dos puntos, vale
02:13:16
Entonces, por una parte, vamos a guardar el result
02:13:19
Vamos a tenerlo ya almacenado
02:13:24
Result
02:13:27
Cadena vacía, tenemos ahí
02:13:30
Y luego vamos a ir añadiendole, vale
02:13:32
Perfecto, entonces vamos a recorrer el texto
02:13:38
For
02:13:42
Indice
02:13:44
In
02:13:46
Range
02:13:47
Len, el tamaño
02:13:49
Vamos a recorrer el tamaño
02:13:51
Tamaño del texto
02:13:54
Abre
02:13:56
Texto
02:13:57
Cierra, cierra
02:13:58
Y
02:13:59
Así
02:14:00
Vale
02:14:02
Vamos a ir recorriendo, entonces
02:14:04
Texto
02:14:06
Vamos a guardar una variable para que nos quede un poco más clara
02:14:09
Carácter
02:14:13
Es igual a
02:14:15
Texto
02:14:16
Índice
02:14:19
Lo vamos a pasar por ahí
02:14:20
Entonces aquí ya vamos a ir recorriendo el índice, vale
02:14:22
Carácter
02:14:28
Para poder verlo bien
02:14:34
Vamos a ponerlo aquí, carácter
02:14:36
Imprimir el carácter
02:14:39
Vamos a hacerlo mejor, para que quede más claro
02:14:46
Vamos a ponerle
02:14:51
La letra
02:14:55
Espacio
02:14:58
Más carácter
02:15:00
Se transforma en
02:15:07
Ramos
02:15:11
Vale
02:15:15
Vamos a hacer aquí el
02:15:19
chr
02:15:21
Este es el que convertía el número
02:15:23
El número en carácter, vale
02:15:27
Dentro vamos a hacer la transformación
02:15:32
El ORD
02:15:35
Vale
02:15:38
del carácter
02:15:39
Carácter más uno
02:15:41
Lo estoy haciendo en una línea pero podría haberlo hecho en varias, vale
02:15:45
Podemos hacerlo aquí, mira
02:15:48
Vamos a llamar carácter
02:15:52
Encriptado
02:15:55
Vale, o modificado
02:15:58
Mod carácter
02:16:00
Modificado
02:16:03
Vale
02:16:05
Cogemos este
02:16:07
La transformación
02:16:09
Las dos paréntesis importantes
02:16:11
De esta manera obtenemos el carácter modificado, se transforma en
02:16:16
Carácter
02:16:21
Más
02:16:23
Carácter
02:16:25
Modificado
02:16:27
Vale
02:16:30
Hasta aquí, hasta aquí la línea
02:16:31
Y vamos a añadirlo al resultado
02:16:34
Entonces result
02:16:37
Más igual
02:16:39
Carácter
02:16:43
Modificado
02:16:45
Result
02:16:47
Result
02:16:53
Salimos de la tabulación una
02:16:58
Para decir cuando termine el FOR
02:17:00
RETURN
02:17:03
Result, vale
02:17:05
Muy bien
02:17:10
Imprimimos
02:17:13
Bueno, hacemos la llamada
02:17:15
Texto
02:17:18
Encriptado
02:17:21
Encriptar
02:17:28
Y le pasamos el texto
02:17:31
Esto igual
02:17:36
Esto es un
02:17:38
Secreto
02:17:40
Vale
02:17:42
Texto
02:17:45
Print
02:17:49
Texto
02:17:53
Encriptado
02:17:55
A ver si ha ido todo bien
02:17:59
Vale, print
02:18:04
Siempre se me olvida cerrarlo
02:18:06
Y más
02:18:10
Encriptado
02:18:12
Concatenar
02:18:14
Print
02:18:20
Print
02:18:40
Texto
02:18:42
Encriptado
02:18:44
Print
02:18:46
Texto
02:18:48
Encriptado
02:18:50
Print
02:18:54
Print
02:19:00
Texto
02:19:02
Encriptado
02:19:04
Print
02:19:06
Print
02:19:08
Texto
02:19:12
Encriptado
02:19:14
Print
02:19:16
Texto
02:19:18
Encriptado
02:19:20
Print
02:19:22
Texto
02:19:28
Encriptado
02:19:30
Print
02:19:32
Texto
02:19:34
Print
02:19:36
Print
02:19:40
Print
02:19:42
Print
02:19:44
Print
02:19:46
Print
02:19:48
Print
02:19:50
Print
02:19:52
Print
02:19:54
Print
02:19:56
Print
02:19:58
Print
02:20:00
Print
02:20:02
Print
02:20:04
Print
02:20:06
Print
02:20:08
Print
02:20:10
Print
02:20:12
Print
02:20:14
Print
02:20:16
Print
02:20:18
Print
02:20:20
Print
02:20:22
Print
02:20:24
Print
02:20:26
Print
02:20:28
Print
02:20:30
Print
02:20:32
Print
02:20:36
Print
02:20:38
Print
02:20:40
Print
02:20:42
Print
02:20:44
Print
02:20:46
Print
02:20:48
Print
02:20:49
Print
02:20:58
Funciones, argumentos, parámetros, módulos
02:21:00
Módulos son maneras de externalizar el código por ficheros
02:21:30
Lo que conseguimos es sacar el código en otros ficheros y por tanto simplemente en el caso de que necesitemos una funcionalidad o algo, lo que haremos será hacer un import
02:21:55
Accedemos a ese código entero, podemos hacer un import, por ejemplo existe el módulo JSON, este que veis aquí, entonces lo que haremos será un import JSON
02:22:11
JSON es un formato muy similar al visto en los diccionarios porque trabaja con clave valor y es un formato muy común dentro de la informática
02:22:30
Y bueno, es simplemente una explicación para ver que hay código que existe fuera de no solamente lo que hemos programado nosotros en nuestro fichero
02:22:55
Hay funcionalidad extra a la que podemos acceder, hay librerías externas y librerías internas, las librerías internas por ejemplo en el caso de JSON
02:23:12
Y otra manera de acceder, porque por ejemplo podemos hacer un import JSON o podemos hacer, dentro del JSON hay una función, lo que hemos visto hasta ahora es una función que se llama DUMPS
02:23:24
Pues esta función lo que hace es serializar el objeto en un JSON, serializar el diccionario en un formato JSON, lo que nos generaría sería una estructura muy similar al diccionario pero estructurada y demás
02:23:41
Sí, os lo he explicado un poco más abajo, tenéis aquí la dirección para si queréis consultar un poco más, simplemente ya os digo, JSON es un ejemplo, hay muchísimos más, hay MA, pero también hay IMPORT, MAG que también nos permite hacer operaciones
02:24:00
Otro ejemplo, luego lo veremos, no hay ningún problema, entonces para que lo veáis, el código nosotros no lo vemos, pero si queremos consultar algo lo que haremos será irnos a la dirección que vimos aquí, que es la documentación oficial de Python
02:24:27
Y dentro de esa, las librerías JSON, y en el código lo que veremos será esto, si lo reconocéis, esto es DER, DUMPS, y luego le vamos a pasar parámetros, asterisco que significa un sinfín de parámetros, se lo podemos pasar por aquí
02:24:50
Y hace cosas específicas y luego le estipula por aquí los diferentes parámetros por defecto, si queremos saltarnos la aquí, miles de funcionalidades, no nos vamos a meter en ellas la verdad
02:25:18
La única que he considerado importante es la de INTENT, ya que nos permite hacer una tabulación de los elementos, de manera que se vean de manera bonita, es como cuando se le ha puesto el diccionario del armario, verlo así de bonito, porque cuando nosotros imprimimos, está aquí tabulado
02:25:36
Y luego cuando lo imprimimos queda así de feo, JSON es lo mismo, es un diccionario, pero está tabulado y demás, entonces para ello lo que haremos será este ejemplo, el de importar un JSON, importar la librería JSON
02:26:01
Y una vez ya la tenemos cargada, lo que haremos será imprimir, nos va a convertir DUMPS, nos convertirá el armario, le estamos pasando el armario como un parámetro, objeto este
02:26:23
Y le estamos diciendo, oye, añádeme una tabulación de 4, y se muestra así de bonito, aquí está metiendo 4 espacios, está convirtiendo el diccionario en un texto, esto es lo que saca por pantalla, es un texto, así con esta estructura
02:26:39
Es simplemente para que lo tengáis en cuenta, no he ahondado más en ello, porque para ello habría que profundizar más en este área, es muy amplio
02:27:04
Tenemos también los paquetes, si crece mucho la funcionalidad JSON por ejemplo, imaginaos que tiene varios ficheros, con muchísimas funciones, os lo he puesto a modo de ejemplo con lo del armario
02:27:22
Supongamos que el número de ficheros aumenta extensiblemente y tenemos varios módulos y queremos ser ordenados, vamos a crear un paquete que se llame armario y dentro módulos que son realmente ficheros
02:27:41
Los módulos realmente son ficheros, como aquí arriba sería el fichero JSON.py en el que tenemos toda esta información, pues tendríamos gestión de zapatos, gestión de cinturones, calcetines, faldas, imaginaos que es un armario y una gestión brutal del código
02:27:59
Es una manera de tenerlo organizado y de acceder a esa información, a esa implementación, ese código de manera ordenada
02:28:21
Vamos a crear una carpeta, todo esto lo va a hacer este código de aquí abajo, lo tenéis que ejecutar una única vez
02:28:36
Lo que va a hacer es, aquí a la izquierda tenemos una carpetita y una vez ya ejecutemos este código nos va a crear una carpeta llamada pkg y dentro un fichero que hemos llamado operaciones.py
02:28:50
Este fichero le podéis dar doble clic y veréis que tenemos aquí dos funciones
02:29:14
No os preocupéis por este código, si queréis os lo explico, pero es simplemente para crear, digamos que esto sería una manera de crear código, crear un entorno estable dentro de vuestro Jupyter
02:29:21
En el que hemos creado una carpeta hemos utilizado la librería os y hemos llamado a la función mkdir, mkdir lo que hace es crear una carpeta con el nombre que nosotros le pasamos por parámetro, pkg
02:29:46
Lo que hemos hecho es eso, y luego posteriormente, esto es un poco más avanzado, pero esto lo que hace es crear un fichero, escribir un fichero con el nombre que nosotros le pasemos, esta es la ruta específica de Jupyter
02:30:06
para acceder, barra, drive, barra, esto es un poco técnico, pero bueno, para que lo entendáis, nunca está mal
02:30:24
Luego el with es una palabra reservada que lo que hace es, mantiene abierto algo, hace una operación de open, la mantiene abierta, ese fichero lo mantiene abierto, le estamos diciendo, ábreme este fichero en modo escribir con este nombre
02:30:36
El as lo que hace es, digamos, hacer una especie de alias, entonces el fichero, el nombre con el que nos vamos a referir al fichero, file, le vamos a realizar la acción de write, el módulo write nos va a escribir en el fichero, nos va a añadir todo el texto que hemos visto aquí
02:30:58
Esto es un poco técnico, ya os digo, pero bueno, que lo sigáis
02:31:24
- Subido por:
- Innovacion
- Licencia:
- Reconocimiento - No comercial - Compartir igual
- Visualizaciones:
- 49
- Fecha:
- 23 de enero de 2024 - 19:14
- Visibilidad:
- Público
- Centro:
- C RECURSOS INNOVACIÓN
- Duración:
- 2h′ 31′ 28″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 2400x1350 píxeles
- Tamaño:
- 762.21 MBytes