WEBVTT 00:00:00.000 --> 00:00:04.000 Desafortunadamente, no estamos completamente listos para estar sonrientes. 00:00:04.000 --> 00:00:07.000 Sebastian me dijo que van a pasar algunos años antes de que tenga 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 00:00:11.000 --> 00:00:13.000 como usar un procedimiento. 00:00:13.000 --> 00:00:17.000 Todo lo que hemos hecho es crearlos, hasta que no podamos usarlos 00:00:17.000 --> 00:00:19.000 no tenemos ninguna razon para estar felices. 00:00:19.000 --> 00:00:22.000 Enseguida vamos a aprender a usarlos, luego estaremos nuevamente sonrientes. 00:00:22.000 --> 00:00:25.000 Ahora vamos a aprender a usar un procedimiento. 00:00:25.000 --> 00:00:32.000 La forma de usar un procedimiento- necesitamos el nombre del procedimiento, seguido de 00:00:32.000 --> 00:00:36.000 un parentesis izquierdo, seguido de una lista de entradas. 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 00:00:40.000 --> 00:00:42.000 que espera el procedimiento. 00:00:42.000 --> 00:00:44.000 Estas entradas son algunas veces llamadas operandos, 00:00:44.000 --> 00:00:46.000 algunas veces son llamadas argumentos. 00:00:46.000 --> 00:00:48.000 No vamos a debatir al respecto. 00:00:48.000 --> 00:00:50.000 Nosotros simplemente las llamaremos entradas. 00:00:50.000 --> 00:00:52.000 Ustedes ya hicieron algo parecido a esto. 00:00:52.000 --> 00:00:57.000 En la unidad 1, aprendieron a usar find con las cadenas. 00:00:57.000 --> 00:00:59.000 con find podían pasar una o dos entradas. 00:00:59.000 --> 00:01:01.000 La primera entrada era una cadena. 00:01:01.000 --> 00:01:04.000 Esa fue la cadena en la que estaban buscando, esa fue la primera entrada, 00:01:04.000 --> 00:01:07.000 y la segunda entrada podía ser la posición desde donde empezar a 00:01:07.000 --> 00:01:09.000 buscar dentro esa cadena. 00:01:09.000 --> 00:01:13.000 Usamos find en varias formas en la unidad 1, así como ustedes 00:01:13.000 --> 00:01:15.000 la usaron por su cuenta en la tarea de la unidad 1. 00:01:15.000 --> 00:01:17.000 Find es un poco diferente del procedimiento que define uno por su cuenta. 00:01:17.000 --> 00:01:19.000 Antes que nada, es interno. 00:01:19.000 --> 00:01:22.000 La otra cosa que era diferente es que en lugar de tener simplemente find tuvimos 00:01:22.000 --> 00:01:25.000 otra entrada que estaba por aquí. 00:01:25.000 --> 00:01:31.000 Tenemos la cadena en la que estamos haciendo la busqueda, digamos 00:01:31.000 --> 00:01:34.000 que era la variable page- esa fue otra entrada a buscar. 00:01:34.000 --> 00:01:38.000 En una clase posterior hablaremos porque está hecha diferente, pero es 00:01:38.000 --> 00:01:41.000 muy similar llamar un procedimiento donde una de las entradas esta por aquí. 00:01:41.000 --> 00:01:43.000 y la otra por aquí. 00:01:43.000 --> 00:01:46.000 Esto es un poco diferente de eso y no trataremos más en este curso, pero 00:01:46.000 --> 00:01:50.000 en un curso posterior aprenderás más acerca de que significa esto realmente. 00:01:50.000 --> 00:01:55.000 En todos los procedimientos que definan por su cuenta, no tendremos ningun 00:01:55.000 --> 00:01:56.000 objeto sobre el cual invocarlos. 00:01:56.000 --> 00:02:00.000 Simplemente tendremos el procedimiento a llamar y los argumentos, operandos o entradas, 00:02:00.000 --> 00:02:03.000 como quieran llamarlos, para pasarlos. 00:02:03.000 --> 00:02:06.000 Veamos como funciona con un simple procedimiento. 00:02:06.000 --> 00:02:10.000 voy a definir el procedimiento rest_of_string y le daremos el 00:02:10.000 --> 00:02:13.000 parámetro s, eso significa que toma una entrada y vamos a usar el 00:02:13.000 --> 00:02:16.000 nombre s para referirnos al valor de esa entrada. 00:02:16.000 --> 00:02:21.000 Haremos que retorne la cadena desde el primer caracter hasta final. 00:02:21.000 --> 00:02:25.000 usaremos la operador indexado return s[1:] 00:02:25.000 --> 00:02:31.000 Esto evaluará la cadena con la primera letra removida, es decir toda la cadena desde 00:02:31.000 --> 00:02:33.000 la posición uno hasta el final de la cadena. 00:02:33.000 --> 00:02:35.000 Eso es lo que retornamos. 00:02:35.000 --> 00:02:39.000 Entonces, la salida de rest_of_string es la nueva cadena que empieza desde 00:02:39.000 --> 00:02:42.000 la segunda letra de la cadena de entrada. 00:02:42.000 --> 00:02:45.000 Aqui tienen un ejemplo de como usar este procedimiento. 00:02:45.000 --> 00:02:47.000 Podríamos llamarlo directamente. 00:02:47.000 --> 00:02:51.000 podríamos decir print rest_of_string 00:02:51.000 --> 00:02:53.000 ese es nuestro procedimiento. 00:02:53.000 --> 00:02:56.000 Ahora vamos a tener nuestro parentesis y vamos a pasar la entrada. 00:02:56.000 --> 00:02:59.000 Hay un parámetro de rest_of_string, entonces necesitamos una entrada 00:02:59.000 --> 00:03:02.000 y esa sería string 00:03:02.000 --> 00:03:05.000 pasaremos la cadena audacity. 00:03:05.000 --> 00:03:07.813 Lo que sucede cuando llamamos a un procedimiento como este, es que la ejecución 00:03:07.813 --> 00:03:10.000 salta al cuerpo de procedimiento. 00:03:10.000 --> 00:03:10.566 podemos pensar acerca de lo que el intérprete está haciendo ahora. 00:03:10.566 --> 00:03:17.000 En lugar de ejecutar el código aquí, el intérprete se moverá 00:03:17.000 --> 00:03:21.000 cuando llama al procedimiento, y saltará para ejecutar el código dentro del procedimiento. 00:03:21.000 --> 00:03:26.000 Asignará los valores a los parámetros pasados como entradas. 00:03:26.000 --> 00:03:30.000 podemos concebir esto como una asignación que dice ahora el valor de 00:03:30.000 --> 00:03:31.974 s es el valor de esta entrada que fue pasada. 00:03:31.974 --> 00:03:36.000 Ahora vamos a evaluar el cuerpo del procedimiento. 00:03:36.000 --> 00:03:39.000 En este caso hay una sola sentecia, la sentencia return, 00:03:39.000 --> 00:03:43.000 vamos a encontrar este valor, así s[1:] 00:03:43.000 --> 00:03:47.000 El resultado de esto va a ser la cadena udacity. 00:03:47.000 --> 00:03:49.000 Luego tendremos la sentencia return. 00:03:49.000 --> 00:03:51.000 Lo que return significa es que vamos a saltar de regreso, 00:03:51.000 --> 00:03:56.000 de regreso a donde llamamos al procedimiento, pero ahora de verdad 00:03:56.000 --> 00:03:58.000 tenemos un resultado. 00:03:58.000 --> 00:04:03.000 Cuando saltamos de regreso, el valor que es evaluado es cualquier valor que 00:04:03.000 --> 00:04:04.000 retornamos. 00:04:04.000 --> 00:04:07.000 En este caso, es la cadena udacity. 00:04:07.050 --> 00:04:08.556 Entonces no tenemos nuestro auto que se conduce solo, 00:04:08.556 --> 00:04:10.867 pero ahora podemos definir y usar procedimientos. 00:04:10.867 --> 00:04:12.745 Este es de verdad un concepto poderoso. 00:04:12.902 --> 00:04:14.993 Cualquier cosa que hagamos en lo que queda del curso y cualquier cosa 00:04:14.993 --> 00:04:18.529 que casi cualquiera hace en la programación de computadoras está relacionado con definir 00:04:18.529 --> 00:04:20.697 y usar procedimientos. 00:04:20.697 --> 00:04:22.778 Ahora deberíamos tener una gran sonrisa. 00:04:22.778 --> 00:04:26.777 Podemos pensar acerca de los procedimientos como el mapeo de entradas a salidas. 00:04:26.777 --> 00:04:30.396 Podemos pensar acerca de los humanos que también mapean entradas a salidas. 00:04:30.396 --> 00:04:33.065 Tenemos entradas viniendo a través de nuestros ojos, de 00:04:33.065 --> 00:04:35.689 nuestra boca, quizá incluso a través de nuestra nariz. 00:04:35.689 --> 00:04:39.081 No intentaré mencionar ninguna de las salidas de nuestro procedimiento humano, pero dado que 00:04:39.081 --> 00:04:41.495 el procedimiento es un concepto importante, vamos a tener varias 00:04:41.495 --> 00:04:44.495 pruebas para verificar que los entendimos bien.