En este video tutorial veremos para qué sirven las funciones, cómo se definen y cómo se usan. En programación, una función es una secuencia de sentencias que realiza una operación. Las mismas tienen un nombre y pueden recibir o no parámetros y devolver o no resultados. Generalmente, se crean funciones para reutilizar código, llamando varias veces a una función. Además, se puede encapsular una funcionalidad dándole más semántica al programa, poniéndole un nombre. Las funciones pueden probarse de manera independiente al resto del programa, con lo cual, se puede saber que esa función está bien y que si el código que la llama está dando mal un resultado no es por la función, sino, por otra parte del programa. Al crecer la extensión de los programas que hacemos es imprescindible definir funciones para facilitar la lectura y comprensión del mismo. Si no, es muy difícil encontrar un error en el programa o hacer un cambio sin ingresar nuevos errores. Veamos un ejemplo. Definamos nuestro primer función. Las funciones se crean con la palabra reservada "def". Después se le asigna un nombre y entre paréntesis se ponen los parámetros que se desea. En este ejemplo, no recibirá ningún parámetro. Luego, definiremos el cuerpo en la función que, en este caso, devolverá cero. Para salir de la función, devolviendo un resultado, se utiliza la palabra reservada "return." Al definir una función no se ejecuta el código de la misma, sino, que se agrega al contexto de ejecución del programa para poder utilizarla. Llamemos a la función cero y vemos que nos devuelve el entero cero. También, podemos operar directamente con la función, por ejemplo, cero más uno, me devuelve uno. O podemos guardar el resultado una variable, por ejemplo, C igual cero. Si exploramos el contenido en la variable C, vemos que es cero. Vimos que una función puede recibir parámetros. Voy a crear una función que suma uno al número pasado como parámetro. Entonces, escribo "def" suma uno a un número. Lo que va a hacer es devolver un número más uno. Probamos la función suma uno pasandole el argumento tres y vemos que devuelve cuatro. También, podemos hacer composición de funciones, por ejemplo, puede hacer suma uno de cero y vemos que devuelve uno. Primero evalúa la función cero, que es pasado como parámetro y luego la función suma uno. Analicemos la forma en que se definen las funciones. Primero tenemos el encabezado que comienza con la palabra reservada "def". Y continúa con el nombre, seguido de la lista de parámetros que recibe entre paréntesis. Abajo se describe el cuerpo de la función, que contiene una o más sentencias inventadas con una sangría. La función termina cuando la sangría vuelve a el nivel de la palabra "def". Opcionalmente, la primera sentencia del cuerpo de la función puede ser una cadena de texto, que será la cadena de texto de documentación de la función lo que se denomina como "docstring". Por ejemplo, en esta función, podríamos poner como documentación: "suma uno al número recibido como parámetro". Hay herramientas que usan los "docstring" para producir documentación automáticamente. Es una buena práctica incluir "docstring" en el código que uno escribe, por lo que es bueno hacerse un hábito de esto. Cabe destacar, que al definir una función el nombre que le asignamos, pasa a ser parte del contexto del programa y puede ser utilizada posteriormente, al igual que pasa con las variables, que una vez definidas, pueden ser utilizadas. Veamos otro ejemplo. Definamos una función que sume dos números pasados como parámetro. "Def" suma (a, b) y definimos una variable: "resultado", donde guardaremos el resultado de la operación a+b y devolvemos la variable "resultado". En este caso la variable "resultado" fue definida dentro de la función, por lo que sólo existirá dentro del contexto de ejecución de la misma. Luego se destruye, con lo cual, si fuera de la función llamo a la variable "resultado", Python dará un error de tipo "NameError", por ejemplo, estas variables suelen llamarse "variables locales", ya que existen dentro de un contexto local a la función. De la misma manera, los parámetros de la función son variables locales a la misma, por ejemplo, en la función suma (a y b), son variables locales de la función y no existen fuera del contexto de la misma. Hemos visto una introducción en la definición y uso de funciones en Python, en el próximo video tutorial seguiremos viendo este tema con mayor profundidad.