Python logo - Curso de Python desde cero

Funciones en Python

Continuamos viendo la sintaxis básica de Python. En esta ocasión vemos las funciones.

Hola ¿Qué tal? bienvenidos a otra entrega de este curso de programación en python, en el que nos encontramos abordando cuestiones básicas de este lenguaje.

Vimos en el post anterior los tipos de datos, operadores y variables en Python, ahora vamos a ver en este post una estructura fundamental en casi cualquier lenguaje de programación. Estoy hablando de las funciones. Vamos a ver:

  • Qué son las funciones
  • Para qué sirven
  • Cuál es la sintaxis de las funciones en python
  • Cómo ejecutar funciones

Como las funciones son estructuras básicas en casi cualquier lenguaje de programación, imagino que aquellos de vosotros que tengáis conocimientos en otros lenguajes, este tema lo tenéis más que superado. Así que me reitero, aquellos que os encontráis en esta situación os podéis saltar este post, incluso también los siguientes y reincorporados más tarde al curso.

Aquellos que tengáis pocos conocimientos de programación o que os estáis iniciando en la programación con este curso de python el tema de las funciones es fundamental, así que bueno pues vamos a comenzar por ver qué son las funciones.

¿Qué son las funciones?

Una función no es ni más ni menos que una o varias líneas de código formando una unidad, un grupo, un bloque y que tienen una tarea o cometido específico. Veremos más adelante que esa tarea que realiza una función se puede dividir a su vez en tareas más pequeñas o sub tareas.

Las funciones pueden o no devolver valores. Aquellos que os estéis iniciando en programación, esto de devolver valores os sonará desconocido, pero por el momento tomar nota de lo que es el concepto y más tarde veremos qué es esto de devolver valor.

Las funciones en python pueden tener parámetros o puede que no. Igual que antes, vamos a ver más adelante que esto de los parámetros o argumentos.

A las funciones también se les denomina métodos, es decir, función y método viene a ser sinónimo siempre y cuando la función esté dentro de una clase. Y aquí tenemos otro concepto nuevo: el concepto de clase.

Como podéis ver, la explicación de qué es una función está lleno de términos que si os estáis iniciando en programación no entenderéis aún, pero a medida que avance el curso se irá haciendo la luz. De momento, id tomando nota de todo esto y no os preocupéis si no entendéis demasiado que es una clase, valor, etc.

Una vez que ya tenemos una idea aproximada de qué es una función, ahora vamos a ver para qué sirve.

¿Cuál es la sintaxis de una función en Python?

La sintaxis es fácil: palabra reservada def, a continuación nombre de la función (hay que seguir las mismas reglas que expliqué en el post anterior para el nombre de las variables) y después van dos paréntesis a los que se les denomina zona de parámetros o argumentos, dos puntos y después las instrucciones que irán dentro de esa función siempre con una identación.

>>> def nombre_funcion():
...     instrucciones de la función
...     return valor

La sangría es fundamental porque le indica a python que esta instrucción que aparece a continuación de la función forma parte de la propia función.

Luego, adicionalmente, la función puede llevar en su interior una instrucción return, que es opcional. Return tiene que ver con la devolución de valores como dije anteriormente. Una función puede devolver valores o no, si devuelve valores llevará el return, y si no devuelve valores pues no lo llevará.

Aquí tenemos una segunda sintaxis de lo que sería una función, en este caso una función que recibe parámetros. Sería exactamente igual pero los paréntesis o zona de parámetros en vez de estar vacíos, se encuentran con datos que se denominan argumentos o parámetros.

>>> def nombre_funcion(parametro1, parametro2):
...     instrucciones de la función
...     return valor

¿Cómo se ejecuta una función?

Para ejecutar una función es muy sencillo, en el caso de que la función no reciba parámetros, únicamente hay que escribir el nombre de la función y los paréntesis vacíos porque no recibe parámetros.

>>> nombre_funcion()

En el caso de que la función reciba parámetros pues el nombre de la función y entre paréntesis los parámetros necesarios. Esta sería la teoría pero como siempre pues hasta que no llevemos la teoría a la práctica no se termina de entender así que vamos a ello

>>> nombre_funcion()

Funciones predefinidas y Funciones propias

Otro concepto dentro de lo que sería una función tenemos las funciones predefinidas y tenemos las funciones propias. Las funciones predefinidas son las que se nos proporcionan con el lenguaje de programación, en este caso python, por ejemplo la función print().

  • print() es una función predefinida por el lenguaje, es decir, que ya viene con el lenguaje y que la tenemos a nuestra disposición para usarla cuando queramos.
  • Luego tenemos las funciones propias, que es de lo que estamos hablando en este post y lo que vamos ha aprender, que es crear tus propias funciones para utilizarlas en el futuro.

¿Para qué sirve una función?

La principal utilidad de una función, aunque no la única, es poder reutilizar el código. Lo cierto es que puedes elaborar un programa en python sin utilizar una sola función, esto sería extrañísimo porque el 99% de los programas en python tienen función pero ser posible, pues es posible.

Si lo pensáis un poco, es extremadamente útil poder programar una o varias líneas de código, que sería lo que forma el bloque de una función y poder reutilizar esa línea o esas líneas de código tantas veces como lo desees dentro de tu programa. Es la principal utilidad de una función

Además el uso de una función lleva otras ventajas añadidas que de momento no se entenderán, como por ejemplo que pueden responder a eventos, que se pueden llamar desde otros programas o archivos… pero la principal utilidad reutilización de código.

Vamos a ver la utilidad que tiene una función, que como hemos dicho ya, es la reutilización de código. Nosotros hasta ahora hemos utilizado esta función print() para escribir mensajes. Vamos a escribir, por ejemplo, «Estamos aprendiendo python».

>>> print("Estamos aprendiendo python")

Si tú quieres guardar este código en una carpeta para consultar o modificarlo ejecutarlo en el futuro, lo único que hay que hacer es ir a file > Save as... (Guardar como…), escoger la carpeta donde vas a guardar este archivo, darle un nombre a este archivo y, muy importante, guardar con extensión .py este archivo. Esto le va a indicar a tu sistema que se trata de un archivo python.

Si queremos ejecutar este código en Sublime text 3 para que imprima en consola este mensaje, pulsamos la combinación de teclas control + b, o lo que es lo mismo, podemos irnos al menú tools > Build, y fijaos como python en la zona inferior nos abre una consola y nos imprime el mensaje «Estamos aprendiendo python«.

Imaginaos que además de esta instrucción, tenemos más instrucciones y te ves en la necesidad de repetir varias líneas de código para que se ejecuten varias veces. Imaginaos que necesitamos que esto se imprima cinco veces o que se ejecuten cinco veces.

>>> print("Estamos aprendiendo python")
>>> print("Python es muy fácil")
>>> print("Si aprendes Python, aprendes a programar")

La función nos permite reutilizar esta estructura que se repite en el código sin tener que reescribir el código, y si en el futuro lo necesitamos podemos llamar a esa función las veces que sea necesario. Eso siempre será menos código que tener que escribir todo lo que lleva la función dentro muchas veces.

¿Cómo podemos hacer que este código esté dentro de una función y que se ejecuten las veces que lo deseemos cuando nosotros queramos?

Lo único que hay que hacer es meter este bloque de código dentro de una función. Hemos visto que para definir o crear una función primero es la palabra reservada def, a continuación nombre que le queremos dar, los paréntesis de parámetros y a continuación dos puntos.

>>> def nombre_funcion():
...     print("Estamos aprendiendo python")
...     print("Python es muy fácil")
...     print("Si aprendes Python, aprendes a programar")
...

Esto sería la declaración de la función. También hemos mencionado que estos paréntesis pueden llevar o no parámetros, pero de momento no van a llevar. Luego el código que va a formar parte de la función tiene que ir identado, es decir, con una pequeña sangría.

Si queremos salir de la función lo único que hay que hacer colocar el cursor al mismo nivel que la función, y eso hará que lo siguiente que escribamos ya no forme parte de ella. Ahora mismo ya hemos creado nuestra primera función.

Hay que decir una cosa muy importante: una función nunca va a realizar su tarea hasta que esa función no es llamada. ¿Cómo llamar a una función? Simplemente escribiendo el nombre de la función y los parámetros si son necesarios.

>>> nombre_funcion()

Esta línea que tenemos aquí sería la llamada a la función. Si tú estás creando un programa complejo y necesitas que esta función realice su trabajo varias veces, cuando lo necesites la vuelves a llamar. Puedes llamar a una función las veces que necesites.

Hay que señalar también que el flujo de ejecución de un programa siempre va de arriba a abajo, excepto cuando se encuentre con funciones y bucles. Esto quiere decir que el flujo de ejecución, el intérprete de payton va a llegar a esta línea y aquí va a ver que hay que llamar a la función y ejecutar su código.

Después continuará el flujo de ejecución hacia abajo, con las posibles líneas que pudiera haber a continuación. Se encontrará de nuevo con la llamada y volverá a ejecutar la función para que esta haga su trabajo.

Bueno vamos a dejar este artículo en el punto en el que nos encontramos y ya en el próximo post veremos cómo hacer que una función reciba parámetros, como pasarle esos parámetros o argumentos en la llamada, qué utilidad puede tener el tema de los parámetros, etcétera. Os digo lo de siempre, os invito a que permanezcáis atentos a la próxima entrega. Hasta entonces.

Ir arriba

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para «permitir cookies» y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en «Aceptar» estarás dando tu consentimiento a esto.

Cerrar