Funciones en Python: argumentos y retorno de múltiples valores

Funciones en Python: argumentos y retorno de múltiples valores

Veremos qué son las funciones en Python, las diferentes formas de pasar y recibir argumentos, y cómo devolver múltiples valores en una función.

Éste artículo está explicado en video. Puedes verlo aquí:https://youtu.be/8YQhPHAmvxk

Si estás aprendiendo a programar has podido comprobar que un programa puede hacerse muy grande a medida que realiza más operaciones. Pues bien, un programa muy grande puede ser dividido en bloques
más pequeños y manejables. A éstos bloques se les llama funciones.

Ahora bien, dividir un programa en funciones no es simplemente juntar unas lineas y separar otras. Una función tiene una estructura que seguir:

Funciones en Python: Estructura de una función

Una función contiene:

  • Nombre de la función
  • Argumentos
  • Código de la función
  • Valor de retorno (valores)

Para que una función trabaje, debe ser invocada. (Eslava, 2012)

Funciones en Python. Estructura de una función

Funciones en Python. Estructura de una función

Funciones en Python sin argumentos

Para crear una función se utiliza la palabra def, seguida del nombre de la función y entre paréntesis se anotan los parámetros que la función necesita para trabajar.

def ejemplo():
	print ("Esto es una funcion sin argumentos")

ejemplo()

Una vez creada, puede ser invocada en cualquier momento, utilizando su nombre y pasando los argumentos (valores) necesarios.

En el ejemplo anterior, la función no requiere de argumentos.

Paso de argumentos por posición

En el caso de que una función tenga parámetros, una forma de utilizarlos es considerando su posición.

def suma(a,b):
	resultado = a+b
	return resultado

print(suma(5,6))

En el ejemplo anterior, la función suma requiere dos parámetros (a, b). Cuando es llamada, print (suma(5,6)), los argumentos  leídos en el orden en que son pasados. En el ejemplo anterior a tomará el valor de 5, y b el valor de 6.

Paso de argumentos por nombre

En Python no es necesario escribir los argumentos en el orden en que la función define sus parámetros. Podemos especificar el nombre del parámetro y de esa manera escribir los argumentos en cualquier orden.

def restar (actual, nacimiento):
	resultado = actual - nacimiento
	return resultado


edad_erronea = restar(1990,2020)
edad = restar(nacimiento=1990, actual=2020)
print (edad_erronea)
print (edad)

En el ejemplo anterior podemos llamar la función restar pasándole como argumentos 1990 y 2020. Por default copiará el valor 1990 al parámetro actual y el valor 2020 al parámetro nacimiento. Pero podemos pasar los argumentos por nombre:

edad = restar (nacimiento =1990, actual=2020)

y poner los argumentos en cualquier orden.

Argumentos por default

En Python también podemos especificar argumentos por default, de modo que, aunque no se pase el valor correspondiente, la función la asume por default.

Por ejemplo:

def dividir (dividendo, divisor=2):
	resultado = dividendo/divisor
	return resultado

cuarto = dividir(40,4)
mitad = dividir(40)
print (cuarto,mitad)

En la función anterior se define un parámetro por default, divisor=2. Es posible llamar a la función pasándole los dos parámetros:

cuarto = dividir(40,4)

o pasando solamente uno:

mitad = dividir(40).

En éste último caso no hay error, porque fue especificado el parámetro divisor, y lo asume por default.

Argumentos indeterminados en Python

Una función puede utilizar parámetros indeterminados. Python utiliza la expresión *args para indicar una serie de argumentos indeterminados.

def sumarx(*args):
	resultado = 0
	for valor in args:
		resultado = resultado + valor
	return resultado

total = sumarx(4,3,6,2,6)
print (total)

En la función anterior, es posible invocar a sumarx con la cantidad de datos que nosotros queramos.

total = sumarx(4,3,6,2,6)

o bien

total = sumarx(4,3,5)

Cualquiera de las dos formas será correcta, pues la función está programada para recorrer utilizando un for  todos los argumentos (valores) pasados (for valor in args).

Retorno de múltiples valores en una función en Python

Hasta aquí hemos visto cómo retornar (return) un valor en una función en Python, pero éste lenguaje permite devolver múltiples valores.

def cuadradoycubo (n):
	cuadrado = n ** 2
	cubo = n ** 3
	return cuadrado, cubo
	#return [cuadrado,cubo]


print (cuadradoycubo(5))
c2, c3 = cuadradoycubo(5)
print (c2)
print (c3)

lista = cuadradoycubo(3)
print (lista)

La función anterior devuelve dos valores (return cuadrado, cubo). Entonces cuando la función sea invocada:

c2,c3 = cuadradoycubo(5) 

debe de haber dos variables que reciban los datos. De lo contrario, la variable será una tupla y si la imprimimos se verá el resultado así:

(25,125)

Los paréntesis indican que es una tupla.

Si quisiéramos que los datos los reciba una lista para posteriormente procesarla como lista, entonces la función debería retornar y dato tipo lista:

return [cuadrado,cubo]

y cuando sea llamada:

lista = cuadradoycubo(3)

los datos devueltos serán elementos de una lista Python.

Si aprendes mejor en video, te dejamos éste:

¿Qué te pareció este artículo?
  • Poco informativo 
  • No era lo que buscaba 
  • Regular 
  • Interesante 
  • Excelente 
(Visto 27.627 veces)
Facebooktwitterlinkedinmail

Tu comentario

opiniones

Leave a Reply

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







− 9 = 1