Lathack

Introducción a Funciones en Python

Introducción a Funciones en Python

Introducción

En el contexto de la programación, una función es una secuencia de sentencias que realizan una operación y recibe un nombre. Cuando se define una función, se especifica el nombre y la secuencia de sentencias. Entonces, luego se podrá “llamar” a la función por ese nombre.

En este apartado estaremos viendo en detalle los tipos de funciones built-in, las cuales hemos estado usando anteriormente. Y las funciones propias que, como su nombre lo indica, son aquellas que generamos nosotros.

Funciones built-in en Python 

El intérprete de Python tiene un número de funciones integradas (built-in), las cuales están siempre disponibles. Algunas las usamos cotidianamente programando en Python, por ejemplo las mas usadas suelen ser:

print()

Una de las acciones básicas e imprescindibles que tiene que realizar un programa es la de mostrar información por pantalla: texto, números, resultados, etc. La función print() es la que nos permite imprimir (mostrar) por pantalla.

input()

La función input() permite a los usuarios introducir datos desde la entrada estándar (normalmente se corresponde con la entrada de un teclado). Los datos son tomados como ‘str’ , aunque los ingresos fueran números, son tomados como string, luego hay que convertirlos.

Ejemplos

Anteriormente hemos visto los tipos de datos int, string o float. Entonces, es posible convertir de un tipo a otro con las funciones correspondientes, siempre y cuando se pueda realizar la conversión. Inclusive se puede convertir diferentes conjuntos a listas, con list(), o a tuplas con tuple().

Otro ejemplo, con respecto a la función len(), es que el argumento puede ser una secuencia (como una cadena, un objeto byte, una tupla, lista o un rango) o una colección (como un diccionario, un set o un frozen set).

Introducción a Funciones en Python

Como respuesta obtenemos lo siguiente:

A continuación, se mostrarán más funciones de la documentación oficial de funciones built-in.

Introducción a Funciones en Python

Funciones propias en Python

Anteriormente hemos usado funciones nativas que vienen con Python, como len() para calcular la longitud de una lista, o type() para saber el tipo de dato. Pero al igual que en otros lenguajes de programación, también podemos definir nuestras propias funciones. Para ello hacemos uso de la palabra reservada def.

def función():
    pass

La función anterior no hace nada. Es decir, la palabra reservada pass sirve para rellenar un bloque de código requerido sintácticamente (no podría estar vacío porque lanzaría un error de sintaxis). Esta palabra, no solo se emplea para completar código de bloques vacíos en funciones, también se la emplea para completar bloques vacíos de sentencias de control. Como así también, para completar clases vacías en orientación a objetos.

Un método válido sería:

def funcion():
    print(“Hola mundo!”)

funcion()

Out:

Hola mundo!

Veamos el siguiente ejemplo:

Introducción a Funciones en Python

Como podemos ver, tenemos dos funciones: tabla7() y saludo(). La primera cumple la función de darnos la tabla del 7, es decir, la multiplicación de todos números decimales por 7. Y la segunda función, nos devuelve un dato tipo str, es decir, unas simples frases.

La función format() permite reemplazar cada valor donde corresponde. Es decir, para el primer {} corresponde la variable i. Y para el segundo {}, corresponde la variable i * 7.

Anatomía de una Función:

  1. def funcion(parámetro):
  2. Métodos
  3. funcion(«argumento»)

Las funciones que definimos permiten agrupar un bloque de código o conjunto de instrucciones. Opcionalmente, reciben uno o más argumentos y retornan un valor. Por lo tanto, los argumentos son los valores de las variables (en una función pasan a llamarse parámetros) que se definen al declarar funciones, las cuales van a ser utilizadas para enviar valores al hacer un llamado a la función.

Por ejemplo:

def example(mensaje):

    print(mensaje)

funcion(“Hola mundo!”)

Out:

Hola mundo!

Entonces:

example() –> Función

mensaje  –> Parámetro

print() –> Método (aquí puede haber cualquier método o incluso ninguno con «pass»)

“Hola mundo!” –> Argumento

A continuación, veremos esto con mayor detalle.

Argumentos por defecto

Para indicar parámetros opcionales, indicamos su valor por defecto con el signo de igual (=).

def imprimir_mensaje(mensaje=»No has escrito nada.»):
    print(mensaje)

imprimir_mensaje(«Hola mundo»)
imprimir_mensaje()

Out:
Hola mundo
No has escrito nada.

Los argumentos con valores por defecto siempre deben ir al final de la función. Por ejemplo, el siguiente código es inválido:

def sumar(a=5, b):
    return a + b

A los argumentos con valores por defecto se los conoce como keyword argument o “argumentos por nombre”, ya que al llamar a la función se puede especificar su valor indicando su nombre, como se ve en el ejemplo a continuación.

def suma(a=5, b=10):
    return a + b


print(suma())

print(suma(b=50))

print(suma(6, 4))

print(suma(a=6, b=4))

Out:

15

55

10

10

Esto permite que, en la segunda llamada, a mantenga su valor por defecto, mientras que b, obtenga el número 50. En el caso que se especifiquen ambos argumentos, indicar o no su nombre es indistinto.

Return en Funciones

El uso del return permite salir de la función (terminarla) y transferir la ejecución de vuelta a donde se realizó la llamada. Se puede devolver uno o varios parámetros, pero una vez que se llama al return se detiene la ejecución de la función y se vuelve, o retorna, al punto donde fue llamada. Por ejemplo:

def ejemplo():

    print(“Esto es un ejemplo”)

    return “ejemplo de return”

print(ejemplo())

Out:

Esto es un ejemplo

ejemplo de return

Veamos otro ejemplo usando solo el return:

def dato():

    print(“Esto es un número negativo”)

    return -5

print(dato())

Out:

Este es un número negativo

-5

Veamos un ejemplo de tupla como resultado:

def asignacion():

    return 1, 2, 3, 4, 5

print(asignacion())

Out:

(1,2,3,4,5)

Cuando una función no retorna ningún valor (es decir, no incluye la palabra reservada return), por defecto retorna None. Por lo tanto, con return podemos agregarle valor a nuestra función cuando sea necesario.

En el caso de haber especificado una lista:

def asignacion():

    return [1, 2, 3, 4, 5]

print(asignacion())

Out:

[1,2,3,4,5]

Veamos el siguiente script, junto con sus funciones y respuestas:

Introducción a Funciones en Python

Para las siguientes funciones, podemos observar lo siguiente:

  • Para def decimal() no se ha llamado a return.

  • Para def frase(), solo hemos obtenido la respuesta del return print(frase()), ya que, al llamar funcion() esto nos devuelve un valor None.

  • Con def enumeracion(), a cada valor del return (1,2,3,4,5) se le ha asignado una variable (a,b,c,d,e). Por lo tanto, print(a) = 1 y asi sucesivamente…

Documentación en funciones

Ahora que ya tenemos nuestras propias funciones creadas, muchas veces en algún proyecto debamos compartirlas con otros programadores, para que sean parte de un programa complejo. Leer código ajeno no es tarea fácil, por eso es importante documentar las funciones. Por ejemplo:

def funcion_sumar(a, b):

«»»
Aquí redactamos una breve descripción de la función. Cómo debe ser usada, qué parámetros acepta y qué devuelve.
«»»
return a+b

Para crear un texto que nos diga qué hace la función podemos crear un comentario del tipo párrafo usando la triple comilla «»» al principio de la función y al final, para cerrar el comentario. Esto no forma parte del código, es un simple comentario un tanto especial, conocido como docstring.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

diecinueve + siete =

Lathack
Scroll al inicio