Información
Actualidad
Aquí encontraras noticias de actualidad sobre Gnu Linux y Open Source.

Además de información sobre la comunidad LiGNUx.
Distribuciones y entornos
Información ordenada sobre los diferenes sistema operativos Gnu Linux y las diferentes opciones de entornos gráficos.
Tutoriales y guías
Todos los pasos e informaciones que puedes desear para tu día a día.
Tutoriales
Tutoriales
Programación
Programación
About Us
Get to know the people behind the code and the mission behind the work
how we handle data
Privacy
Security
Legal

Funciones en Python

23 septiembre, 2013

Las funciones son bloques de código asociados a un procedimiento determinado, en Python  las funciones se crean con la palabra reservada def seguidas de el nombre de la función y entre paréntesis (si los requiere) le sigue algún parámetro, de esta manera:

def Funcion(parametro1, parametro2, parametro3, parametron):

Como es ya conocido, el bloque de código en Python esta delimitado por los espacios o tabulaciones en las líneas correspondientes a dicho bloque, el mismo principio se aplica a las funciones, procedamos a hacer una función simple, sin parámetros y que solamente devuelva el texto 'hola' y lo imprima.

>>> def hola():
... print('Hola')
...
>>> hola()
Hola

En el ejemplo anterior, la función se encarga de llamar al bloque de código compuesto en este caso solamente por la línea: print('Hola'), y al llamarlo se encarga de ejecutar dicho bloque de código, hasta aquí me imagino que todo está más que claro, ahora veamos un ejemplo de una función que imprime el texto que se le envía como parámetro:
>>> def Imprimir(texto):
...     print(texto)
...
>>> Imprimir('texto de ejemplo')
texto de ejemplo
>>>

En este caso solo se esta mandando a imprimir usando la función print() lo cual es un poco redundante, pero nos ayuda a conocer como es que la función Imprimir() es capaz de recibir el Argumento y lo utiliza como parámetro con el cual trabaja.

Python, al igual que otros lenguajes de programación utiliza la palabra reservada return para devolver un valor como resultado de una función, por ejemplo:
>>> def suma(sumando1, sumando2):
... return sumando1 + sumando2
>>> resultado = suma(2,4)
>>> resultado
6
>>> print(suma(3,1))
4

Ahora un ejemplo un poco más complejo:
>>> def AreaCirculo(radio):
... return 3.1426 * radio * radio
...
>>> print('El Area del circulo es:',AreaCirculo(3),'unidades cuadradas')
El Area del circulo es: 28.2834 unidades cuadradas

Un ejemplo muy similar al anterior, pero ahora con 2 parámetros:
>>> def volumenCono(radio,altura):
... numerador = 3.1416 * (radio * radio) * altura
... return numerador/3
...
>>> volumen = volumenCono(3,4)
>>> print('El volumen del cono es:',volumen,'unidades cubicas')
El volumen del cono es: 37.6992 unidades cubicas

En este caso, al pasar un número equivocado de argumentos, arrojará un error como este:
>>> volumen = volumenCono(2)
Traceback (most recent call last):
File "", line 1, in
TypeError: volumenCono() missing 1 required positional argument: 'altura'

¿Por Valor o por referencia?

Hagamos un recordatorio de algo de programación básica: ¿Que es un parámetro por valor y que es un parámetro por referencia?

Cuando trabajamos con parámetros por valor, se copia el contenido de la variable que llama a la función (argumento) a la variable que es recibida por la función (parámetro), veamos lo que pasa en el siguiente pseudocódigo:

Función(variable2)
-inicio función-
procedimiento...
-fin función-
entero variable1 = 2
LlamadaAfunción(variable1)

En el pseudocódigo anterior, las variables: "variable1" y "variable2" tienen el mismo valor (2) pero, son variables diferentes, es decir, cualquier alteración de la variable dentro de la función no se verán fuera de esta, se utiliza normalmente al retornar el valor de la variable y ya se puede usar fuera de esta.

En los parámetros por referencia, lo que se pasa a la función es digamos la dirección o puntero de la variable para hacer referencia a esta, es decir se trabaja sobre la misma variable que se pasa como Argumento, cualquier alteración de dicha variable dentro de la función se verá reflejada fuera de esta.

¿Como hace Python entonces para las funciones? ¿Parámetros por valor o por referencia? La respuesta es simple: Python pasa por valor todas las variables que sean del tipo inmutable (como las Tuplas) y pasa por referencia todas las variables que sean del tipo mutable (como las Listas).

Retornar mas de un valor en una función

>>> def error(mas, menos):
... return mas + 5, menos - 5
...
>>> valorMedido = 25.39
>>> errorMaximo, errorMinimo = error(valorMedido,valorMedido)
>>> print("La mayor medida posible es: ",errorMaximo," y la menor medida posible es: ",errorMinimo)
La mayor medida posible es: 30.39 y la menor medida posible es: 20.39

En este ejemplo, se hace una función que retorna 2 valores, esto lo logra Python haciendo uso de una tupla, esta tupla es creada en el proceso solo para retornar estos valores. Se puede ver que en la palabra return se mandan los valores a retornar separados por coma y al hacer la llamada a la función se hace una igualación de 2 variables separadas por coma, lo hace en el mismo orden en que la función retorna las variables.

Esto es todo por ahora, espero que esta entrada sea de mucha utilidad, saludos.

Escrito por César Iglesias

Hola, mi nombre es César, estudiante de Ingeniería en Computación, soy alguien muy curioso que le gusta aprender cosas nuevas en especial si es del mundo GNU/Linux, espero poder compartir lo poco que se con los demas.

Suscribirse
Notificarme las
guest
3 Comentarios
Los más recientes
Los más antiguos Más votados
Feedbacks en línea
Ver todos los comentarios
LiGNUx trabaja sobre una licencia de Creative Commons Reconocimiento 4.0 Internacional.
cloudflagpaperclipprinterfile-emptyfilm-playcamera-videopicturelaptop-phonebriefcasecrossmenu
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram