Google+ Seguidores

viernes, 8 de abril de 2016

Funciones en Python

    0

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:
  • def saludo(): - es como se define la función
  • print "Estamos aprendiendo funciones en Python" - es el contenido
  • saludo() - es como se llama a la función
  • Estamos aprendiendo funciones en Python - será la salida en pantalla

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

  • Todos los argumentos o parámetros de entrada deben definirse dentro de los paréntesis de la función. 
  • La primera sentencia de una función puede ser una cadena de documentación (opcional). Esta sirve de ayuda para entender el comportamiento de la función.
  • El código dentro de una función se inicia luego de los : (dos puntos) y debe tener una sangría de espacio.

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.

Error en sangría
Error en sangría

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

Sangría de forma correcta
Sangría de forma correcta

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 "todavia estoy en la funcion saludo()" y no le asignemos la sangría, nos mostrará un mensaje de error.

Sangría de forma incorrecta
Sangría de forma incorrecta

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

Nivel de sangría correcto
Nivel de sangría correcto

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 la raíz cuadrada 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.

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

Resultado None
Resultado None


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.

Función "return"
Función "return"

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.

Ubicación del objeto en Python
Ubicación del objeto en Python

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.

Argumentos en Python
Argumentos en Python

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.

Asignando valor a un argumento en Python
Asignando valor a un argumento en Python

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

Cambiando el valor al argumento
Cambiando el valor al argumento

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.

Invirtiendo el orden de los argumentos
Invirtiendo el orden de los argumentos

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).

Múltiples argumentos en Python
Múltiples argumentos en Python

Tips:
  • Hay una gran confusión en Python sobre los métodos y las funciones. Los métodos en python están asociados a instancias de objetos mientras que las funciones no. Cuando Python llama un método, se une el primer parámetro de la llamada a la referencia del objeto apropiado. En términos simples, una función independiente en Python es una "función", en tanto una función que es un atributo de una clase o una instancia es un "método". 

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

No hay comentarios:
Write comentarios

Tu comentario es importante y nos motiva a seguir escribiendo...

Entradas más recientes

© 2014 Mi diario Python. Designed by Bloggertheme9 | Distributed By Gooyaabi Templates
Powered by Blogger.