1 00:00:00,000 --> 00:00:04,000 Desafortunadamente, no estamos completamente listos para estar sonrientes. 2 00:00:04,000 --> 00:00:07,000 Sebastian me dijo que van a pasar algunos años antes de que tenga 3 00:00:07,000 --> 00:00:11,000 mi propio auto que se conduce solo, pero el mayor problema es que todavía no hemos hablado realmente de 4 00:00:11,000 --> 00:00:13,000 como usar un procedimiento. 5 00:00:13,000 --> 00:00:17,000 Todo lo que hemos hecho es crearlos, hasta que no podamos usarlos 6 00:00:17,000 --> 00:00:19,000 no tenemos ninguna razon para estar felices. 7 00:00:19,000 --> 00:00:22,000 Enseguida vamos a aprender a usarlos, luego estaremos nuevamente sonrientes. 8 00:00:22,000 --> 00:00:25,000 Ahora vamos a aprender a usar un procedimiento. 9 00:00:25,000 --> 00:00:32,000 La forma de usar un procedimiento- necesitamos el nombre del procedimiento, seguido de 10 00:00:32,000 --> 00:00:36,000 un parentesis izquierdo, seguido de una lista de entradas. 11 00:00:36,000 --> 00:00:40,000 Podría ser cualquier cantidad de entradas, pero tiene que coincidir con el número de entradas 12 00:00:40,000 --> 00:00:42,000 que espera el procedimiento. 13 00:00:42,000 --> 00:00:44,000 Estas entradas son algunas veces llamadas operandos, 14 00:00:44,000 --> 00:00:46,000 algunas veces son llamadas argumentos. 15 00:00:46,000 --> 00:00:48,000 No vamos a debatir al respecto. 16 00:00:48,000 --> 00:00:50,000 Nosotros simplemente las llamaremos entradas. 17 00:00:50,000 --> 00:00:52,000 Ustedes ya hicieron algo parecido a esto. 18 00:00:52,000 --> 00:00:57,000 En la unidad 1, aprendieron a usar find con las cadenas. 19 00:00:57,000 --> 00:00:59,000 con find podían pasar una o dos entradas. 20 00:00:59,000 --> 00:01:01,000 La primera entrada era una cadena. 21 00:01:01,000 --> 00:01:04,000 Esa fue la cadena en la que estaban buscando, esa fue la primera entrada, 22 00:01:04,000 --> 00:01:07,000 y la segunda entrada podía ser la posición desde donde empezar a 23 00:01:07,000 --> 00:01:09,000 buscar dentro esa cadena. 24 00:01:09,000 --> 00:01:13,000 Usamos find en varias formas en la unidad 1, así como ustedes 25 00:01:13,000 --> 00:01:15,000 la usaron por su cuenta en la tarea de la unidad 1. 26 00:01:15,000 --> 00:01:17,000 Find es un poco diferente del procedimiento que define uno por su cuenta. 27 00:01:17,000 --> 00:01:19,000 Antes que nada, es interno. 28 00:01:19,000 --> 00:01:22,000 La otra cosa que era diferente es que en lugar de tener simplemente find tuvimos 29 00:01:22,000 --> 00:01:25,000 otra entrada que estaba por aquí. 30 00:01:25,000 --> 00:01:31,000 Tenemos la cadena en la que estamos haciendo la busqueda, digamos 31 00:01:31,000 --> 00:01:34,000 que era la variable page- esa fue otra entrada a buscar. 32 00:01:34,000 --> 00:01:38,000 En una clase posterior hablaremos porque está hecha diferente, pero es 33 00:01:38,000 --> 00:01:41,000 muy similar llamar un procedimiento donde una de las entradas esta por aquí. 34 00:01:41,000 --> 00:01:43,000 y la otra por aquí. 35 00:01:43,000 --> 00:01:46,000 Esto es un poco diferente de eso y no trataremos más en este curso, pero 36 00:01:46,000 --> 00:01:50,000 en un curso posterior aprenderás más acerca de que significa esto realmente. 37 00:01:50,000 --> 00:01:55,000 En todos los procedimientos que definan por su cuenta, no tendremos ningun 38 00:01:55,000 --> 00:01:56,000 objeto sobre el cual invocarlos. 39 00:01:56,000 --> 00:02:00,000 Simplemente tendremos el procedimiento a llamar y los argumentos, operandos o entradas, 40 00:02:00,000 --> 00:02:03,000 como quieran llamarlos, para pasarlos. 41 00:02:03,000 --> 00:02:06,000 Veamos como funciona con un simple procedimiento. 42 00:02:06,000 --> 00:02:10,000 voy a definir el procedimiento rest_of_string y le daremos el 43 00:02:10,000 --> 00:02:13,000 parámetro s, eso significa que toma una entrada y vamos a usar el 44 00:02:13,000 --> 00:02:16,000 nombre s para referirnos al valor de esa entrada. 45 00:02:16,000 --> 00:02:21,000 Haremos que retorne la cadena desde el primer caracter hasta final. 46 00:02:21,000 --> 00:02:25,000 usaremos la operador indexado return s[1:] 47 00:02:25,000 --> 00:02:31,000 Esto evaluará la cadena con la primera letra removida, es decir toda la cadena desde 48 00:02:31,000 --> 00:02:33,000 la posición uno hasta el final de la cadena. 49 00:02:33,000 --> 00:02:35,000 Eso es lo que retornamos. 50 00:02:35,000 --> 00:02:39,000 Entonces, la salida de rest_of_string es la nueva cadena que empieza desde 51 00:02:39,000 --> 00:02:42,000 la segunda letra de la cadena de entrada. 52 00:02:42,000 --> 00:02:45,000 Aqui tienen un ejemplo de como usar este procedimiento. 53 00:02:45,000 --> 00:02:47,000 Podríamos llamarlo directamente. 54 00:02:47,000 --> 00:02:51,000 podríamos decir print rest_of_string 55 00:02:51,000 --> 00:02:53,000 ese es nuestro procedimiento. 56 00:02:53,000 --> 00:02:56,000 Ahora vamos a tener nuestro parentesis y vamos a pasar la entrada. 57 00:02:56,000 --> 00:02:59,000 Hay un parámetro de rest_of_string, entonces necesitamos una entrada 58 00:02:59,000 --> 00:03:02,000 y esa sería string 59 00:03:02,000 --> 00:03:05,000 pasaremos la cadena audacity. 60 00:03:05,000 --> 00:03:07,813 Lo que sucede cuando llamamos a un procedimiento como este, es que la ejecución 61 00:03:07,813 --> 00:03:10,000 salta al cuerpo de procedimiento. 62 00:03:10,000 --> 00:03:10,566 podemos pensar acerca de lo que el intérprete está haciendo ahora. 63 00:03:10,566 --> 00:03:17,000 En lugar de ejecutar el código aquí, el intérprete se moverá 64 00:03:17,000 --> 00:03:21,000 cuando llama al procedimiento, y saltará para ejecutar el código dentro del procedimiento. 65 00:03:21,000 --> 00:03:26,000 Asignará los valores a los parámetros pasados como entradas. 66 00:03:26,000 --> 00:03:30,000 podemos concebir esto como una asignación que dice ahora el valor de 67 00:03:30,000 --> 00:03:31,974 s es el valor de esta entrada que fue pasada. 68 00:03:31,974 --> 00:03:36,000 Ahora vamos a evaluar el cuerpo del procedimiento. 69 00:03:36,000 --> 00:03:39,000 En este caso hay una sola sentecia, la sentencia return, 70 00:03:39,000 --> 00:03:43,000 vamos a encontrar este valor, así s[1:] 71 00:03:43,000 --> 00:03:47,000 El resultado de esto va a ser la cadena udacity. 72 00:03:47,000 --> 00:03:49,000 Luego tendremos la sentencia return. 73 00:03:49,000 --> 00:03:51,000 Lo que return significa es que vamos a saltar de regreso, 74 00:03:51,000 --> 00:03:56,000 de regreso a donde llamamos al procedimiento, pero ahora de verdad 75 00:03:56,000 --> 00:03:58,000 tenemos un resultado. 76 00:03:58,000 --> 00:04:03,000 Cuando saltamos de regreso, el valor que es evaluado es cualquier valor que 77 00:04:03,000 --> 00:04:04,000 retornamos. 78 00:04:04,000 --> 00:04:07,000 En este caso, es la cadena udacity. 79 00:04:07,050 --> 00:04:08,556 Entonces no tenemos nuestro auto que se conduce solo, 80 00:04:08,556 --> 00:04:10,867 pero ahora podemos definir y usar procedimientos. 81 00:04:10,867 --> 00:04:12,745 Este es de verdad un concepto poderoso. 82 00:04:12,902 --> 00:04:14,993 Cualquier cosa que hagamos en lo que queda del curso y cualquier cosa 83 00:04:14,993 --> 00:04:18,529 que casi cualquiera hace en la programación de computadoras está relacionado con definir 84 00:04:18,529 --> 00:04:20,697 y usar procedimientos. 85 00:04:20,697 --> 00:04:22,778 Ahora deberíamos tener una gran sonrisa. 86 00:04:22,778 --> 00:04:26,777 Podemos pensar acerca de los procedimientos como el mapeo de entradas a salidas. 87 00:04:26,777 --> 00:04:30,396 Podemos pensar acerca de los humanos que también mapean entradas a salidas. 88 00:04:30,396 --> 00:04:33,065 Tenemos entradas viniendo a través de nuestros ojos, de 89 00:04:33,065 --> 00:04:35,689 nuestra boca, quizá incluso a través de nuestra nariz. 90 00:04:35,689 --> 00:04:39,081 No intentaré mencionar ninguna de las salidas de nuestro procedimiento humano, pero dado que 91 00:04:39,081 --> 00:04:41,495 el procedimiento es un concepto importante, vamos a tener varias 92 00:04:41,495 --> 00:04:44,495 pruebas para verificar que los entendimos bien.