Mi Diario Python

Funciones en Python

Funciones en Python

Siguiendo con el Tutorial Python desde cero, hoy toca hablar de las funciones. Las funciones en Python se utilizan para ejecutar un bloque de código en más de un lugar en un programa. Las funciones también pueden ser conocidas como métodos o procedimientos. El lenguaje de programación Python ya viene con muchas funciones incorporadas, un ejemplo de ello es la función print() que ya hemos utilizado, pero también nos da la posibilidad de crear nuestras propias funciones.

Como definir y llamar a una función en Python

Las funciones en python se definen con la declaración "def", seguido del nombre de la función y los paréntesis ().

Ejemplo:
Vamos a definir una función mediante el comando "def saludo()" y la salida de la función será "Estamos aprendiendo funciones en Python". Luego llamaremos la función para que se ejecute.

def saludo():
    print "Estamos aprendiendo funciones en Python"
 
saludo()

Donde:

Hay un conjunto de reglas en Python para definir una función:

La importancia de la sangría (espacio) en Python

Antes de familiarizarnos con las funciones en python, es necesario entender la regla de la sangría para declarar una función y estas reglas también son aplicables a otros elementos de Python (condicionales, bucles, etc).

Python sigue un estilo particular de sangría para definir el código, ya que las funciones en python no tienen llaves para indicar el inicio y fin de una función (debemos confiar en las sangrías).
Veremos un ejemplo donde utilizaremos la función "print" sin sangría para ver como nos devuelve un mensaje de error.

Si agregamos la sangría antes de la función "print" la salida debe ser la esperada:

Tip: Por lo menos un salto de línea es necesario para llamar a la función (saludo()), pero una buena práctica es utilizar 3 o 4 saltos de línea.

Si bien declaramos la sangría, es necesario mantener esa sangría para el resto del código. Por ejemplo, en la siguiente captura de pantalla, cuando llamamos a otra declaración "todavía estoy en la función saludo()" y no le asignemos la sangría, nos mostrará un mensaje de error.

Ahora, cuando colocamos la sangría de la segunda sentencia en el mismo nivel que la primera, el resultado es el esperado:

Como funciona el valor de retorno

El comando de retorno en Python especifica que valor se devolverá cuando se llama una función.

Veamos un ejemplo: 

Paso 1: Aquí veremos cuando la función no tiene retorno. Por ejemplo, queremos hacer el cuadrado de 4 y que nos devuelva 16 cuando se ejecute la función. Esto lo logramos haciendo "print x * x", pero cuando se llama a la función "print cuadrado" la salida será "None". Esto se debe a que cuando se llama a la función, la recursividad no sucede y se cae al final de la función.

Paso 2: Para ver esto más claro, reemplazaremos el comando de impresión con una asignación y veremos la salida:

Cuando se ejecuta "print cuadrado(4)" lo que hace es devolver el valor del objeto y como no tiene ninguna función específica devuelve "None"

Paso 3: Ahora vamos a ver como recuperar la salida con el comando "return". Cuando se utiliza la función "return" y ejecutamos el código, obtendremos el valor 16.

Paso 4: Las funciones en python son en si un objeto, y un objeto tiene un cierto valor. Ahora vamos a ver como trata un objeto Python. Cuando se ejecuta "print cuadrado", el comando devuelve el valor del objeto. Puesto que no hemos pasado ningún argumento, no tenemos ninguna función específica así que devuelve un valor predeterminado (0x7f2a22fcc578) que es la ubicación del objeto. En la práctica de Python, es probable que nunca tengas que hacer esto.

Argumentos en funciones

El argumento es un valor que se pasa a la función cuando se llama. En otras palabras, cuando se llama a la función es un argumento y cuando se declara la función es un parámetro.

Veamos como funciona un argumento en Python

Paso 1 - Los argumentos se declaran cuando se crea la función.

Paso 2 -  Para declarar un valor predeterminado en el argumento, lo hacemos asignándolo cuando definimos la función:

Ejemplo: x no tiene ningún valor predeterminado y el valor por defecto de y = 0. Cuando suministramos solo un argumento y llamamos a la función "multiplicar", Python asigna el valor suministrado para x y mantiene el valor de y = 0. Por lo tanto la multiplicación de x * y será 0.

Paso 3 - Esta vez vamos a cambiar el valor de y = 2 en lugar de 0, y esto nos dará la salida (4x2)=8.

Paso 4 - También podemos cambiar el orden de como se van a pasar los argumentos en Python. Acá invertimos el orden del valor de x e y para x = 4 e y = 2.

Paso 5 - Múltiples argumentos también se pueden pasar como una matriz. En este ejemplo llamamos múltiples argumentos (1,2,3,4,5) con la función (*args).

Tips:

Conclusión: Una función en Python es una pieza de código que puede realizar una o varias tareas y que puede ser re utilizada en cualquier parte del código.

Fuente: http://www.guru99.com/functions-in-python.html

Salir de la versión móvil