Cómo funcionan las funciones en Python

A la hora de programar en Python, es posible que te suenen palabras como file(), print(), open(), range(), etc. A esto se le llaman funciones integradas. Es decir, funciones que nos proporciona el propio lenguaje que se pueden ejecutar referenciándolas (llamadas). Pero, ¿qué es una función de todos modos? Eso es lo que vamos a ver en este tutorial, las funciones de Python y cómo funcionan.

Las funciones se componen de un conjunto de instrucciones combinadas para obtener algún resultado (lograr alguna tarea), y son ejecutadas mediante llamadas a la misma función. Los resultados en Python pueden ser o bien la salida de algún cálculo en la función o None. Esas funciones pueden ser funciones integradas (mencionadas anteriormente) o funciones definidas por el usuario. Las funciones definidas dentro de clases se denominan métodos.

Definir funciones

Ahora que sabemos lo que se entiende por función, vamos a ver cómo podemos definir funciones en Python. Para definir una función, utilizaremos la declaración def, que tiene la siguiente sintaxis:

def function_name(parameters):
    statement(s)
    return expression

Los parámetros en la definición de una función son opcionales, ya que ciertas funciones no requieren parámetros que pasar en el momento de la llamada a la función. Si no se pasa más de un parámetro, los parámetros están separados por comas, y estarán vinculados a los argumentos de la función que se corresponden con los parámetros pasados. Las declaraciones (cuerpo de la función) se ejecutan cuando se llama a la función.

La instrucción de retorno es una declaración opcional que sirve valor de retorno cuando, al llamar a una función, se espera un valor devuelto. Si no se devuelve ningún valor específico, el valor devuelto por defecto será None.

Ejemplos

Vamos a ver algunos ejemplos para comprender aún más la idea de las funciones en Python. Te habrás dado cuenta que al utilizar funciones estaremos evitando el repetirnos a nosotros mismos, ya que proporcionan un bloque de código reutilizable al cual llamar cada vez que queramos realizar alguna tarea periódica.

Vamos a ver un ejemplo muy sencillito para comprenderlo todo. En la función de a continuación, pasaremos el nombre del empleado, y la función lo mostrará por pantalla. El código sería tal que así:

employee_name = 'Abder'
 
def print_name(name):
    print name
     
print_name(employee_name)

Como puedes ver, al llamar a un función, podremos observar estos componentes:

  • El nombre de la función (print_name)
  • Los parámetros (employee_name)

Si escribes print_name(employee_name) antes de la definición de la función, Python se quejará de la siguiente manera:

Traceback (most recent call last):
  File "test.py", line 3, in < module >
    print_name(employee_name)
NameError: name 'print_name' is not defined

Por lo que, para que no ocurra esto, procura llamar a la función, siempre después de haberlo declarado.

Vamos a ver otro ejemplo. En este ejemplo utilizaremos listas. Asumiendo que tenemos la siguiente lista:

numbers_list = [1,2,3,4,5]

Esta función servirá para insertar nuevos números en la lista que pasaremos a la función:

numbers_list = [1,2,3,4,5]
 
def insert_numbers(numbers_list):
    numbers_list.insert(5, 8)
    numbers_list.insert(6, 13)
    print 'List "inside" the function is: ', numbers_list
    return
     
insert_numbers(numbers_list)
print 'List "outside" the function is: ', numbers_list

La salida de esta función sería:

List "inside" the function is:  [1, 2, 3, 4, 5, 8, 13]
List "outside" the function is:  [1, 2, 3, 4, 5, 8, 13]

¿Qué podemos extraer de todo esto? Podemos concluir que los parámetros se pasan por referencia. Es decir, los parámetros de la llamada a la función son los mismos que los argumentos pasados (variable/identidad) por parte de la llamada, en lugar de pasarlos por valor, donde los llamados parámetros de la función son una copia de llamada.

Una sencilla calculadora

Vamos a usar nuestro conocimiento de las funciones para desarrollar una aplicación un poco más interesante. Vamos a desarrollar una calculadora sencilla. Esta calculadora permitirá al usuario introducir dos números, y realizar la suma, resta, multiplicación y división de los dos números.

def add(x,y):
    return x+y
     
def subtract(x,y):
    return x-y
     
def multiply(x,y):
    return x*y
     
def divide(x,y):
    return x/y
 
x = 8
y = 4
 
print '%d + %d = %d' % (x, y, add(x, y))
print '%d - %d = %d' % (x, y, subtract(x, y))
print '%d * %d = %d' % (x, y, multiply(x, y))
print '%d / %d = %d' % (x, y, divide(x, y))

Creo que con esto, debe haberte quedado más claro el funcionamiento de las funciones de Python.

Fuente: Abder-Rahman Ali

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP