1 00:00:01,899 --> 00:00:13,859 Como decía, aquí tenéis la guía didáctica y la aprobación didáctica, que sería importante que os los mirárais. 2 00:00:14,259 --> 00:00:27,420 Luego aquí tenéis la etiqueta. La etiqueta no es nada más que algo que añado yo, es una infografía para cómo escribir en foros, por correo, etc. 3 00:00:27,420 --> 00:00:36,840 para un recordatorio. Son cosas, al final, un desempeño común, pero bueno, lo añado porque está bastante bien que lo tengamos. 4 00:00:37,719 --> 00:00:49,759 Aquí tenéis mi videopresentación y luego ya tenemos las orientaciones para el alumnado y tenemos los tres formatos de la unidad, 5 00:00:49,759 --> 00:00:57,359 tanto en forma web, en forma offline, que sería como todo de seguido, y el PDF. 6 00:00:57,979 --> 00:01:04,819 A ver, una compañera me ha comentado que aparece en el PDF una línea al principio 7 00:01:04,819 --> 00:01:10,120 y es porque los que han hecho los temarios debieron confundirlo. 8 00:01:10,180 --> 00:01:16,000 Hay una pequeña línea al principio, muy pequeña, de pequeño formato, pero que se ve tanto al principio como al final en el PDF. 9 00:01:16,000 --> 00:01:23,939 Yo he intentado quitarla en el ex-learning, tanto en metadatos, he quitado todas las líneas de metadatos y no, no lo puedo quitar. 10 00:01:24,340 --> 00:01:31,180 Es un problema del ministerio que nos da el formato así y yo más no lo puedo quitar. 11 00:01:31,299 --> 00:01:36,319 Pero que sepáis que esa línea que aparece como no sé qué de cultivo no tiene que ver nada con todo el tema. 12 00:01:36,319 --> 00:01:41,959 Pero vamos, luego aparece el título principal de la unidad y todo es correcto. 13 00:01:41,959 --> 00:02:11,189 Lo que sí he hecho hincapié que estaba mal en los temarios era esto, que en las propias, aquí lo veis, aquí en los ejemplos de Python aparecían con unos barra n que estaba mal, lo tenía que modificar todo para que salga el código de ejemplo de manera correcta, y eso sí lo he modificado todo, tanto en el offline, bueno, en los tres. 14 00:02:11,189 --> 00:02:14,569 luego tenéis la tarea 15 00:02:14,569 --> 00:02:17,090 que la tarea no es muy difícil 16 00:02:17,090 --> 00:02:20,050 y tenéis, bueno, que sería hasta el 30 de octubre 17 00:02:20,050 --> 00:02:20,870 lo he visto antes 18 00:02:20,870 --> 00:02:22,969 ya pasamos a 19 00:02:22,969 --> 00:02:26,370 aquí a la instalación de Python y Visual Studio Core 20 00:02:26,370 --> 00:02:27,669 vamos a utilizar Visual Studio Core 21 00:02:27,669 --> 00:02:29,389 y habrá que instalar Python para que 22 00:02:29,389 --> 00:02:32,389 podamos programar en Visual Studio Core 23 00:02:32,389 --> 00:02:33,650 aquí tenemos un PDF 24 00:02:33,650 --> 00:02:36,509 donde he puesto 25 00:02:36,509 --> 00:02:39,550 las instrucciones para llevarlo a cabo 26 00:02:39,550 --> 00:02:41,449 es muy sencillo 27 00:02:41,449 --> 00:03:02,030 Me hubiera gustado haberlo instalado porque en el ordenador que tengo en las videoconferencias, que es este, que seguramente ahora cuando terminemos la videoconferencia lo que me voy a ocupar es a instalarlo aquí para que yo pueda estar programando y que lo vaya viviendo, pero no me ha dado tiempo, en este ordenador no lo tengo. 28 00:03:02,030 --> 00:03:12,430 Entonces, lo instalaré luego y así en la siguiente videoconferencia ya lo tenemos para que podamos ir viendo, haciendo los primeros programas. 29 00:03:14,009 --> 00:03:21,810 ¿Y qué más? Y luego ya tenemos aquí, bueno, tengo un PDF de ejercicios paso a paso que todavía no lo he mostrado, que ya más adelante. 30 00:03:22,389 --> 00:03:24,090 Y bueno, y esta sería la presentación del módulo. 31 00:03:26,610 --> 00:03:29,710 La presentación del módulo, a ver si lo puedo agrandar más. 32 00:03:29,710 --> 00:03:39,240 Hacer un repaso como la guía didáctica 33 00:03:39,240 --> 00:03:45,280 Vamos a tener 6 unidades de trabajo con 6 resultados de aprendizaje 34 00:03:45,280 --> 00:03:48,599 en el que se distribuyen cada uno de ellos en cada una de las unidades 35 00:03:48,599 --> 00:03:52,780 ¿Qué vamos a aprender? Pues estos serían los pasos que vamos a seguir 36 00:03:52,780 --> 00:03:55,560 En principio los fundamentos y control 37 00:03:55,560 --> 00:03:58,860 Si nos fijamos en esta parte, la 1-2 38 00:03:58,860 --> 00:04:15,099 Esto sería como un curso de fundamentos de programación. En estas dos partes, sea como lo aprendamos, con qué lenguaje lo aprendamos, hasta si lo podemos aprender hasta en pseudocódigo, eso sería el fundamento de programación. 39 00:04:15,099 --> 00:04:39,720 Aquí tengo que lograr que lleguéis a tener un pensamiento computacional. ¿Qué llamo pensamiento computacional? Pues que un programa se crea para que si tienes un problema, buscar una solución. ¿Cómo lo busca la solución? Haciendo un algoritmo. ¿Y ese algoritmo cómo lo ejecutas? Codificándolo en un lenguaje de programación. 40 00:04:40,699 --> 00:04:50,160 Eso es básicamente lo que es un programa, o sea, es un problema que quieres solucionar y esa solución la llevas a través de un algoritmo y luego la codificas por medio de un lenguaje de programación, 41 00:04:50,220 --> 00:04:52,699 un lenguaje de programación que es lo único que entiende el ordenador. 42 00:04:53,600 --> 00:05:03,120 Entonces, esto, tanto fundamentos como control, pues sería básicamente lo que es un curso de fundamentos de programación. 43 00:05:03,120 --> 00:05:13,699 ¿Para qué? Para que lleguemos a entender cómo crear una variable, cómo es la estructura de un programa, cómo podemos hacer un bucle, qué es un condicional, etc. 44 00:05:14,240 --> 00:05:28,139 Una vez que todo eso, tenemos ese pensamiento computacional y somos capaces de hacer programas con todos estos elementos, pues ya podemos ir ampliando todo esto, ya lo digo que lo voy a hacer basándonos en Python. 45 00:05:28,139 --> 00:05:45,980 Siempre va a ser con el idioma Python. Introduciremos las funciones. ¿Para qué? Para hacer los programas más modulares. Una función lo que hace es que desplazas o generas de manera modular una parte o dos de la solución del problema. 46 00:05:45,980 --> 00:05:50,860 la puedes llevar a una función, de tal manera que esa función es transparente para ti. 47 00:05:51,259 --> 00:05:54,420 Tú la llamas, la ejecutas, te da un resultado y lo obtienes. 48 00:05:54,800 --> 00:05:57,300 De esa manera, obtienes un programa modular. ¿Por qué? 49 00:05:57,379 --> 00:06:02,160 Porque si estás reservando partes del problema, siempre un problema que en informática 50 00:06:02,160 --> 00:06:05,279 siempre sería por el dividir, vencerás. 51 00:06:05,639 --> 00:06:09,899 Si tienes un problema complejo, no puedes dividirlo en problemas más sencillos 52 00:06:09,899 --> 00:06:15,519 y luego todos esos problemas sencillos pueden lograr el problema complejo. 53 00:06:15,519 --> 00:06:35,660 Ese es el líbido de influencias. Ser modular significa que cogemos un programa y vamos llamando a cada una de las funciones que nos va resolviendo esos pequeños problemas para que luego en nuestro programa principal obtener la solución completa. 54 00:06:35,660 --> 00:07:00,100 Luego veremos los datos, cómo son las estructuras de datos, veremos Arrays, luego la entrada y salida tanto en teclado como a través de ficheros, para leer un fichero, para escribir un fichero, para modificar un fichero desde código Python y por último tendremos la programación orientada a objetos para con Python crear alguna clase, instanciar objetos, etc. 55 00:07:00,100 --> 00:07:05,709 Estos son los de aprendizaje y como he dicho antes son todos por igual 56 00:07:05,709 --> 00:07:09,509 ¿Qué quiere decir que sean todos por igual? 57 00:07:09,689 --> 00:07:13,910 El hecho de que sean todos por igual es que si yo pongo preguntas en el examen 58 00:07:13,910 --> 00:07:17,689 van a tener el mismo número de preguntas va a haber de cada uno de los RAs 59 00:07:17,689 --> 00:07:20,490 Eso es lo que quiere decir 60 00:07:20,490 --> 00:07:25,009 He dado la misma importancia a todos los RAs, a todas las unidades 61 00:07:25,009 --> 00:07:30,529 Aquí van asociadas cada una al orden que viene establecido en la temporización 62 00:07:30,529 --> 00:07:56,189 Y bueno, la 1 con el RA1, la 6 con el RA6, etc. Aquí tenemos cómo se concreta la elaboración. El RA1, pues variables, constantes, operadores, ¿veis lo que os he dicho? Tanto esta línea como la línea de abajo, que sean los estudios de control como operadores, constantes, variables, esto sería básicamente lo que es un fundamento de programación para poder programar en cualquier lenguaje. 63 00:07:56,189 --> 00:08:09,149 Luego, a ver, una cosa es el pensamiento computacional, adquirir ese pensamiento computacional y utilizar estas herramientas para poder resolver un problema y otra cosa es el idioma en el que decides ejecutar eso. 64 00:08:10,050 --> 00:08:21,910 Una vez que todo esto lo sabes en un determinado, lo entiendes, imaginaos en pseudocódigo, lo puedo trasladar a cualquier idioma nada más que aprendiendo ese idioma. 65 00:08:21,910 --> 00:08:43,129 Aquí lo vamos a hacer con Python, con el idioma Python, pero permitirme que llame idioma, aunque no se dice así, pero es para que establezcáis que realmente lo que es programar es un concepto, el concepto de programación, la estructura de control, las constantes, todo eso es muy parecido en casi todos los lenguajes de programación. 66 00:08:43,129 --> 00:08:56,370 Una vez que uno sabe eso, pues yo le llamo idioma porque independientemente si lo programas en Java, si yo quiero hacer un programa que me resuelva ecuaciones de segundo grado, yo puedo hacerlo en pseudocódigo. 67 00:08:56,649 --> 00:09:04,149 Y luego eso lo puedo trasladar aquí. Si yo me sé el idioma Java, me sé sus reglas, me sé sus palabras reservadas, pues lo haré en Java. 68 00:09:04,470 --> 00:09:07,570 Si lo sé en Python, pues lo haré en Python. Si lo sé en PHP, lo haré en PHP. 69 00:09:07,570 --> 00:09:17,090 Y luego en el R3 pasaremos a las funciones. Hablaremos de lo que es la recursividad, que es llamar una función a la misma función, así de manera recursiva. 70 00:09:17,529 --> 00:09:25,450 Veo con eso porque genera bucles infinitos y eso gasta muchos recursos de memoria. 71 00:09:26,289 --> 00:09:31,730 Luego tenemos la particularidad de las listas, las cadenas y los diccionarios de Python. 72 00:09:31,730 --> 00:09:38,409 veremos la lectura y escritura, tanto de ficheros como de entrada y salida a través del teclado y pantalla 73 00:09:38,409 --> 00:09:45,929 y luego veremos, por último, pues todo lo relacionado con la programación orientada a objetos. 74 00:09:47,509 --> 00:09:51,029 Esta sería la unidad 1. La unidad 1, ¿qué se ve? Pues se va a ver todo esto. 75 00:09:51,769 --> 00:09:56,649 Estructuras, cómo se les hace un programa, qué es una variable, qué es una literal, qué es una constante, 76 00:09:57,350 --> 00:10:01,549 diferencia de constante con variable, qué son los operadores, qué es una expresión, 77 00:10:01,730 --> 00:10:03,210 las conversiones de tipo 78 00:10:03,210 --> 00:10:05,450 super importantes y los comentarios 79 00:10:05,450 --> 00:10:07,730 en la subunidad 2 80 00:10:07,730 --> 00:10:08,909 tenemos la estructura de control 81 00:10:08,909 --> 00:10:11,309 pues tendremos estructuras de selección 82 00:10:11,309 --> 00:10:12,450 y estructuras de repetición 83 00:10:12,450 --> 00:10:15,230 las estructuras de selección son las de los condicionales 84 00:10:15,230 --> 00:10:17,250 un condicional nos va a permitir 85 00:10:17,250 --> 00:10:19,610 en función de una determinada 86 00:10:19,610 --> 00:10:20,690 condición si se cumple o no 87 00:10:20,690 --> 00:10:22,590 ir en un camino o ir en otro 88 00:10:22,590 --> 00:10:25,769 una estructura de repetición no es nada más que ir repitiendo 89 00:10:25,769 --> 00:10:26,649 en un bucle 90 00:10:26,649 --> 00:10:28,549 la misma línea de código 91 00:10:28,549 --> 00:10:30,529 a lo largo de un for, de un while 92 00:10:30,529 --> 00:10:49,009 Y luego tenemos las instrucciones de salto. Si queremos salir de un bucle, podemos hacerlo con el break. Si queremos que una de las vueltas que pase a través de las retiraciones que hace en el bucle no lea las preguntas, o sea, las líneas que tiene dentro del bucle, pues le damos un continue para que se lo salte. 93 00:10:49,730 --> 00:10:58,710 Veremos el control de excepciones. Es muy importante en un programa poner excepciones para cuando hay un error, pues sea capturada y no se rompa la ejecución del programa. 94 00:10:59,590 --> 00:11:10,529 Y luego pruebas y depuración. Siempre que hagamos programas es muy importante hacer pruebas. ¿Pruebas para qué? Para ver si ese problema que queremos resolver se ha resuelto o no de manera efectiva. 95 00:11:10,529 --> 00:11:15,330 Y para ello tendremos que hacer pruebas a ese programa para ver si tiene errores. 96 00:11:16,250 --> 00:11:26,509 Es verdad que en la mayoría de los programas uno no puede demostrar al 100% que no va a tener errores, 97 00:11:26,889 --> 00:11:32,549 pero sí se puede hacer las pruebas más comunes o más habituales y de manera muy granulada 98 00:11:32,549 --> 00:11:37,669 para que minimices ese posible error que pueda tener el programa. 99 00:11:37,669 --> 00:11:49,450 Luego las funciones, cómo crear una función, cómo llamar a esa función, cómo si se le pasan parámetros, qué valores de retorno, la recursividad, como he hablado antes. 100 00:11:50,929 --> 00:12:01,830 En la unidad 4 veremos las tuplas, la lista de diccionarios. Esta de las tuplas es típico de Python, que no aparece en otros lenguajes de programación, como los diccionarios también. 101 00:12:01,830 --> 00:12:05,590 Estas serían las llamadas estructuras de datos 102 00:12:05,590 --> 00:12:09,129 En la unidad 5 veremos la lectura y escritura 103 00:12:09,129 --> 00:12:12,549 tanto por teclado como por pantalla 104 00:12:12,549 --> 00:12:16,350 y luego también podremos lectura y escritura en fichero 105 00:12:16,350 --> 00:12:20,129 Podemos abrir un fichero y leer de ese fichero un dato 106 00:12:20,129 --> 00:12:24,070 o incluso podemos modificarlo o incluso crearlo, etc. 107 00:12:24,990 --> 00:12:28,149 Veremos luego todas las operaciones o funciones básicas 108 00:12:28,149 --> 00:12:31,730 sobre ficheros y también sobre entradas y salidas en pantalla y teclado 109 00:12:31,730 --> 00:12:52,929 Y ya acabaremos con la programación orientada a objetos, que será, aprenderemos a hacer clases, objetos, a instanciar objetos de esas clases, qué significa hacer una clase y la herencia, para que una clase se pueda aprovechar de métodos y de atributos de otra clase de la que deriva. 110 00:12:53,929 --> 00:12:59,350 Veremos el polimorfismo, que eso más adelante lo veremos, y la encapsulación. 111 00:13:02,100 --> 00:13:09,100 Esto sería un típico programa en Python. 112 00:13:10,080 --> 00:13:16,840 Veis cómo aquí ha creado una clase, que se llama programa, y aquí tiene dos funciones, o serían dos métodos, 113 00:13:17,360 --> 00:13:19,820 en el que a uno le llama init y a otro le llama procesar. 114 00:13:19,820 --> 00:13:36,179 Cada uno tiene dos parámetros de entrada y luego el segundo lo que tiene es un bucle for con un parámetro de entrada y dentro del mismo se realiza una operación. 115 00:13:36,960 --> 00:13:43,980 Aquí tenemos que en este ejemplo ya vemos tanto el último tema, programación de objetos con la creación de la clase, 116 00:13:43,980 --> 00:14:00,679 vemos funciones, que sería el tema 5, vemos con sus entradas y parámetros, vemos estructura de control con el condicional y con el for, también entrada y salida, y sería un programa en el que engloba todo lo que vamos a ver. 117 00:14:00,679 --> 00:14:24,000 ¿Qué meta del módulo? Pues pasar de instituciones aisladas a programas organizados y mantenibles. Eso es lo que vamos a tratar que a lo largo del curso podamos llegar a hacer programas medianamente organizados y que incluso les hagamos pruebas para ver si funcionan de manera correcta. 118 00:14:24,000 --> 00:14:35,600 Y esto sería en cuanto a la presentación del módulo. No sé si tenéis alguna duda. 119 00:14:42,120 --> 00:14:49,399 Quería empezar hoy, si tenéis alguna duda, pues la planteáis y la resuelvo, pero también quería empezar. 120 00:14:50,899 --> 00:14:51,419 Sí. 121 00:14:56,590 --> 00:14:57,110 ¿Hola? 122 00:14:57,509 --> 00:14:58,029 Sí, dime. 123 00:14:58,029 --> 00:15:01,429 Yo quería preguntar por la entrega de tareas 124 00:15:01,429 --> 00:15:03,230 ¿Hay alguna plantilla o alguna 125 00:15:03,230 --> 00:15:05,649 un formato 126 00:15:05,649 --> 00:15:06,629 que prefieras 127 00:15:06,629 --> 00:15:09,509 una portada o algo o en plano 128 00:15:09,509 --> 00:15:10,590 o lo más 129 00:15:10,590 --> 00:15:13,710 Si queréis cuelgo la plantilla de la yacuría 130 00:15:13,710 --> 00:15:14,789 si lo puedo 131 00:15:14,789 --> 00:15:17,529 y así es un poquito más uniforme 132 00:15:17,529 --> 00:15:18,549 eso no se me había ocurrido 133 00:15:18,549 --> 00:15:21,570 Yo uso esa pero era 134 00:15:21,570 --> 00:15:22,950 por saber si esa te parece 135 00:15:22,950 --> 00:15:24,649 Estupendo, pues eso me vale 136 00:15:24,649 --> 00:15:31,340 Respecto al examen final, ¿cómo será el formato? 137 00:15:31,519 --> 00:15:33,019 ya que esta materia es muy práctica. 138 00:15:33,019 --> 00:15:43,019 A ver, es un formato 80% tipo test y 20% desarrollo práctico. 139 00:15:43,960 --> 00:15:49,240 Pero vamos a ver, aunque sea tipo test, yo puedo preguntarte, por ejemplo, 140 00:15:49,899 --> 00:15:56,299 poner un programa y decirte, este programa, su salida es 4, 141 00:15:56,299 --> 00:16:10,500 A, su salida es 2. B, C, su salida es 3. Y 4, da error. ¿Sabes qué? Aunque sea tipo test, eso no quiere decir que no pueda meter preguntas de tipo práctico. 142 00:16:10,500 --> 00:16:39,500 Vale, lo que pasa es que luego en el 20% restante del examen, pues os haré que tengáis que hacer un programa pequeñito, no lo sé, todavía no se me ha ocurrido porque no lo he puesto, pero así será el formato, o sea, tipo test, que no quiere decir que no vaya a preguntar en el tipo test, no es teoría, porque realmente este módulo es que de teoría no es teórico, o sea, es un módulo práctico para que aprendamos a programar en Python, vale, y la parte de desarrollo pues que será más que tengáis que escribir, vale. 143 00:16:46,860 --> 00:17:02,940 Vale, voy a, no sé si os he puesto aquí, os he puesto el vídeo de instalación en Python y Visual Studio Core, mirároslo, ¿vale? 144 00:17:02,940 --> 00:17:11,869 Para poderlo instalar. La tarea, no sé si, a ver, la tarea, una de las partes es la instalación del mismo, ¿vale? 145 00:17:11,869 --> 00:17:14,089 Que me hagáis capturas, cómo lo instaláis, etcétera, ¿vale? 146 00:17:14,470 --> 00:17:20,470 Y luego pues hay una serie de programas sencillitos que tenéis que realizar, no tiene mucho más la tarea, ¿vale? 147 00:17:20,470 --> 00:17:36,589 Y sí me importa que cuando me pongáis un programa en la tarea, tenéis dos formas de ponérmelo. A mí me interesa más que tanto que el programa funcione como que sepáis lo que estéis haciendo. 148 00:17:36,589 --> 00:18:03,009 Entonces, una de las maneras puede ser, me lo podéis comentar con comentarios, en cuanto sepamos cómo es un comentario en Python, podéis poner el programa, me ponéis en la cuestión A, por ejemplo, el programa que pida el usuario de la edad y muestre por pantalla cuántos años tendrá en el 2050, me podéis poner el programa y me podéis poner un comentado, con muchos comentarios que me explica cada línea lo que estáis haciendo. 149 00:18:03,009 --> 00:18:05,170 esa es una manera, la otra manera me podéis 150 00:18:05,170 --> 00:18:06,890 poner el programa y explicarme 151 00:18:06,890 --> 00:18:09,769 línea a línea o cada dos líneas 152 00:18:09,769 --> 00:18:11,569 explicarme qué es lo que hace el programa 153 00:18:11,569 --> 00:18:13,450 y por qué ponéis un for ahí, por qué ponéis un 154 00:18:13,450 --> 00:18:14,670 if, por qué ponéis lo que sea 155 00:18:14,670 --> 00:18:16,210 eso es lo que 156 00:18:16,210 --> 00:18:18,609 pero si me interesa que 157 00:18:18,609 --> 00:18:20,190 yo sepa que 158 00:18:20,190 --> 00:18:22,250 entendéis el programa 159 00:18:22,250 --> 00:18:25,529 aunque funcione, no me pongáis nada más que el programa 160 00:18:25,529 --> 00:18:25,990 y ya está 161 00:18:25,990 --> 00:18:33,930 aquí tengo una presentación que bueno 162 00:18:33,930 --> 00:18:43,430 Solo la voy a iniciar y ya, si queréis, lo dejamos. Solo la voy a iniciar, que sería este de aquí, para que veáis un poquito un programa en Python. 163 00:18:47,420 --> 00:18:56,160 Y fijaos, en Python, solo voy a hablar de esto y ya lo dejamos, porque se trataba nada más que de la presentación. 164 00:18:57,220 --> 00:19:06,640 En Python, y en la mayoría de los lenguajes de programación, pues está lleno de llaves, de comillas, de punticomas, etc. 165 00:19:06,640 --> 00:19:19,000 Python en eso es diferente. Veis aquí la imagen en la que la mayoría de los lenguajes, como el Java, están formados por llaves por todos los lados, etc. 166 00:19:19,640 --> 00:19:32,660 En Python no utiliza eso. En Python utiliza para que el propio compilador, que es el que se encarga de leer cada una de las líneas del programa y ver si está bien construido. 167 00:19:32,660 --> 00:19:44,500 El compilador lo que hace es, primero, hace un análisis léxico, va mirando si la palabra def existe en el lenguaje Python, si la palabra if existe en el lenguaje Python. 168 00:19:45,200 --> 00:19:49,700 Primero hace ese lenguaje léxico y luego hace un lenguaje sintáctico. 169 00:19:49,700 --> 00:20:15,519 Mira si realmente esta sintaxis, o sea, es como en el castellano, si la frase con estos componentes, con estos dos puntos, estos dos paréntesis y este ver, si sintácticamente existe o Python, o si cumple la estructura de lo que es un programa en Python. 170 00:20:15,519 --> 00:20:35,680 Y por último, el compilador lo que hace es un análisis semántico. Quiere ver si con todas estas líneas, si tiene sentido lo que yo he programado. Y eso es un compilador, eso es lo que hace. A nivel léxico, sintático y semántico. Entonces, cuando yo le compilo un programa, tiene que tener unas características para que no me dé error. 171 00:20:35,680 --> 00:20:53,900 Entonces, fijaos aquí, como en Python no hay llaves, no hay puntos comas, pues estupendo, muchísimo mejor. ¿En qué se basa el compilador para saber que esta línea, este condicional, está dentro de esta línea, de esta función? Pues se basa en lo que se llama la indentación. 172 00:20:53,900 --> 00:21:08,940 La intentación es meter, vas tabulando cada línea para indicarle que esta línea, este condicional está dentro de esta función, ¿lo veis? Y que estas otras dos líneas, ¿lo veis? Están dentro del condicional. 173 00:21:08,940 --> 00:21:16,619 si esta línea estuviera aquí no estaría dentro del condicional vale tendríamos un problema pero nos 174 00:21:16,619 --> 00:21:23,759 daría un error porque o sencillamente si está a lo mejor no daría error pero estas dos líneas 175 00:21:23,759 --> 00:21:30,000 si estuvieran no tabuladas y estuvieran a esta altura llamaría lo que haría este programa mira 176 00:21:30,000 --> 00:21:35,180 este programa es una función no entonces esta función se llama python structure las funciones 177 00:21:35,180 --> 00:21:40,579 en Python, la primera palabra que se le pone es def, ¿vale? Y termina en dos puntos. Siempre 178 00:21:40,579 --> 00:21:45,940 que tengas dos paréntesis, indica que es una función. Y si veis aquí, dentro no hay 179 00:21:45,940 --> 00:21:49,799 nada. ¿Qué quiere decir? Que esa función no necesita parámetros. Cuando yo la llame, 180 00:21:50,220 --> 00:21:54,680 no voy a necesitar parámetros que enviarle dentro de la función, ¿vale? Entonces, esta 181 00:21:54,680 --> 00:21:58,019 función empieza a leer y ve que dentro hay un condicional, ¿vale? Ya veremos lo que 182 00:21:58,019 --> 00:22:02,000 es un condicional. Un condicional no es nada más que si esta condición de aquí se cumple, 183 00:22:02,000 --> 00:22:04,099 pues estas dos líneas las lee 184 00:22:04,099 --> 00:22:06,180 si no, lee esta de aquí 185 00:22:06,180 --> 00:22:08,059 pues si estas dos líneas 186 00:22:08,059 --> 00:22:10,420 estuvieran 187 00:22:10,420 --> 00:22:12,240 a esta altura, nos daría error 188 00:22:12,240 --> 00:22:13,940 ¿vale? porque no sabría 189 00:22:13,940 --> 00:22:16,039 se creería que estas líneas 190 00:22:16,039 --> 00:22:17,740 están fuera del condicional if 191 00:22:17,740 --> 00:22:19,359 pero como aquí hay un else 192 00:22:19,359 --> 00:22:21,640 pues le choca, no sabe que 193 00:22:21,640 --> 00:22:24,079 imaginaos que este else 194 00:22:24,079 --> 00:22:25,359 no existe 195 00:22:25,359 --> 00:22:27,859 si estas dos líneas estuvieran aquí a esta altura 196 00:22:27,859 --> 00:22:29,740 lo que haría es que diría 197 00:22:29,740 --> 00:22:31,420 primero probaría la condición 198 00:22:32,000 --> 00:22:39,259 Y se saldría del bloque if. Y a continuación, aunque no cumpliera la condición, leería esa línea y leería esa línea. 199 00:22:39,920 --> 00:22:55,220 Bueno, esto es un poco rápido para que veáis que un programa en Python que no tiene llaves y que la indentación es muy importante para indicar al programa que unas cosas están dentro de otras. 200 00:22:55,220 --> 00:22:58,740 estas dos líneas están dentro de este if 201 00:22:58,740 --> 00:23:00,539 que este handleAlternative 202 00:23:00,539 --> 00:23:02,660 que es otra llamada función 203 00:23:02,660 --> 00:23:03,839 está dentro de este else 204 00:23:03,839 --> 00:23:05,180 y etcétera, ¿vale? 205 00:23:05,799 --> 00:23:07,660 Toda función termina con un return 206 00:23:07,660 --> 00:23:10,500 return es la diferencia entre una función y un procedimiento 207 00:23:10,500 --> 00:23:12,039 es que un procedimiento no devuelve un valor 208 00:23:12,039 --> 00:23:14,140 pero una función siempre devuelve un valor 209 00:23:14,140 --> 00:23:16,279 entonces, como esto es una función 210 00:23:16,279 --> 00:23:17,660 tiene que devolver un valor 211 00:23:17,660 --> 00:23:20,119 y el valor que devuelve es este de aquí 212 00:23:20,119 --> 00:23:22,099 que es una variable, que al final result 213 00:23:22,099 --> 00:23:24,339 que, bueno, pues lo que hay que calcular, ¿vale? 214 00:23:25,220 --> 00:23:49,519 Y esto sería, bueno, para que veáis, lo único que veáis aquí es que todo esto, toda esa complejidad de símbolos en Python no existe, no hay llaves, no hay puntos y comas y eso que nos quitamos, pero cuidado, tenemos que tener muy claro que hay dentro de cada cosa, de cada bloque, esto es un bloque, esto es otro bloque y esto es otro bloque, ¿vale? 215 00:23:49,519 --> 00:23:51,720 entonces hay que identificar cada línea 216 00:23:51,720 --> 00:23:53,619 para identificar los tres bloques que hay 217 00:23:53,619 --> 00:23:55,819 un bloque con dos subbloques 218 00:23:55,819 --> 00:23:56,480 dentro, vale 219 00:23:56,480 --> 00:23:59,880 y no sé, alguna duda 220 00:23:59,880 --> 00:24:02,019 algo, no quiero seguir con la presentación 221 00:24:02,019 --> 00:24:03,559 que ya sería pues con todos los elementos 222 00:24:03,559 --> 00:24:06,019 declaraciones, como hacer variables 223 00:24:06,019 --> 00:24:07,819 como sería 224 00:24:07,819 --> 00:24:09,619 pues esto es casi como un resumen 225 00:24:09,619 --> 00:24:10,099 pues del 226 00:24:10,099 --> 00:24:13,420 de la unidad 1 y si queréis 227 00:24:13,420 --> 00:24:14,339 lo vemos un poquito 228 00:24:14,339 --> 00:24:17,500 en la siguiente videoconferencia 229 00:24:17,500 --> 00:24:37,960 Y hacemos, si os pediría que os metáis aquí, os pediría que, a ver, me habéis puesto, en el documento yo añado el código y debajo, pantallazo, donde se aprecia el código y el resultado es válido, el documento, yo añado el código y debajo, pantallazo. 230 00:24:37,960 --> 00:24:50,549 Pantallazo de... Ah, bueno, a ver, podéis hacer un pantallazo del código, del código que habéis hecho, ¿vale? 231 00:24:53,950 --> 00:25:05,549 Podéis hacer un pantallazo del código que habéis hecho, pero o bien lo explicáis con comentarios en el código, bien explicado, o bien luego debajo del pantallazo me explicáis cada línea o por qué habéis hecho eso en el código, ¿vale? 232 00:25:05,549 --> 00:25:10,799 además en el documento como tal pongo 233 00:25:10,799 --> 00:25:12,799 una portada relacionada a la tarea en la 234 00:25:12,799 --> 00:25:14,839 primera página, sí, vale, podéis hacerlo así 235 00:25:14,839 --> 00:25:16,700 no me importa, vale, entendiendo que el tipo 236 00:25:16,700 --> 00:25:18,579 de letra y tamaño es indiferente, sí 237 00:25:18,579 --> 00:25:20,920 no, eso podéis hacerlo como queráis 238 00:25:20,920 --> 00:25:21,180 vale 239 00:25:21,180 --> 00:25:24,980 y no sé, alguna duda hasta aquí 240 00:25:24,980 --> 00:25:26,839 yo creo que la presentación pues 241 00:25:26,839 --> 00:25:28,740 yo no vamos a seguir 242 00:25:28,740 --> 00:25:30,240 ya lo veremos en la siguiente 243 00:25:30,240 --> 00:25:32,960 veremos un poquito la unidad, lo que sí voy a pedir 244 00:25:32,960 --> 00:25:34,339 es esto, que me 245 00:25:34,339 --> 00:25:38,769 que os leáis la unidad 1 246 00:25:38,769 --> 00:25:54,170 ¿Vale? ¿Para qué? Para que luego las sesiones aquí sean de utilidad. Quiero decir, leerosla, sé que es bastante extensa, pero luego, es bastante extensa, pero quitando las recomendaciones, ejercicios resueltos y las autoevaluaciones, luego tampoco es tanto, ¿vale? 247 00:25:54,170 --> 00:25:57,630 leeroslo para que el próximo día 248 00:25:57,630 --> 00:26:00,609 pues tengamos todos unas nociones 249 00:26:00,609 --> 00:26:03,630 aunque sean por encima, leeroslo un par de veces, haceros un resumen 250 00:26:03,630 --> 00:26:07,109 a mano, haceros un Word 251 00:26:07,109 --> 00:26:09,769 lo que queráis, pero que tengáis un poco de idea 252 00:26:09,769 --> 00:26:12,990 para que podamos tener una interacción 253 00:26:12,990 --> 00:26:14,910 un poco conmigo 254 00:26:14,910 --> 00:26:18,970 y empezamos a hacer algún programa, ya tendré instalado aquí 255 00:26:18,970 --> 00:26:22,289 el Visual Studio 256 00:26:22,289 --> 00:26:23,690 y podamos 257 00:26:23,690 --> 00:26:26,210 practicar, ¿vale? 258 00:26:30,710 --> 00:26:31,769 ¿Alguna duda? 259 00:26:31,950 --> 00:26:33,509 ¿Algo que queráis plantear? 260 00:26:45,839 --> 00:26:46,579 Pues nada, ánimo 261 00:26:46,579 --> 00:26:49,480 que este módulo es bonito 262 00:26:49,480 --> 00:26:50,819 ¿vale? Ya veréis como 263 00:26:50,819 --> 00:26:52,980 os va a gustar 264 00:26:52,980 --> 00:26:55,480 y Python además 265 00:26:55,480 --> 00:26:57,059 es que es un lenguaje súper flexible 266 00:26:57,059 --> 00:26:59,359 súper dinámico y puedes 267 00:26:59,359 --> 00:27:00,920 hacer lo que quieras con él 268 00:27:00,920 --> 00:27:03,140 entonces, bueno, ya veréis como os va a gustar 269 00:27:03,140 --> 00:27:05,000 Pues nada, nos vemos en la 270 00:27:05,000 --> 00:27:06,839 siguiente videoconferencia 271 00:27:06,839 --> 00:27:08,880 en la semana que viene, ¿vale? Cualquier duda 272 00:27:08,880 --> 00:27:11,160 escribir en el foro. Podéis escribirme 273 00:27:11,160 --> 00:27:13,019 en el correo o en el foro, pero prefiero en el foro 274 00:27:13,019 --> 00:27:15,039 así de esas dudas se nutren 275 00:27:15,039 --> 00:27:16,779 también los demás alumnos y lo podemos resolver 276 00:27:16,779 --> 00:27:18,039 entre todos, etcétera, ¿vale? 277 00:27:22,200 --> 00:27:22,819 Pues hasta 278 00:27:22,819 --> 00:27:23,859 la semana que viene, ¿vale?