12 de mayo de 2016

14. Funciones. Funciones de múltiples resultados

¿Qué es una función?

Una función, en matemáticas, es una aplicación que hace corresponder un valor de un conjunto, a un valor de otro conjunto u otros conjuntos. Por ejemplo, a cada figura geométrica hago corresponder su número de lados:
Aplicacion Matemática
En programación, una función o subrutina, es una llamada a un conjunto de instrucciones que pueden o no devolver un valor como resultado y que pueden aceptar ninguno, uno o más argumentos. En algunos entornos de programación, se distingue la subrutina de la función en que la primera simplemente ejecuta un código y la segunda ejecuta un código para devolver un valor.
El uso de funciones tiene muchas ventajas:
  • Simplifican el código de programación.
  • Hacen al programa más claro, más lógico.
  • Pueden reciclarse, usarse en otros programas.
  • Dividen los problemas en otros más sencillos.
  • Pueden ejecutarse varias veces desde el programa principal (son algoritmos secundarios).
  • Ahorran memoria y hacen los programas menos extensos.
Las funciones en PYTHON, tienen la siguiente estructura:
def miFuncion():
    orden primera
    orden segunda
    etc...
De forma parecida a otros bloques, como los IF o los FOR, empiezan por la palabra reservada def , el nombre de la función y paréntesis (abre y cierra) con dos puntos. Tabuladas, se ponen en orden las instrucciones a ejecutar.
Si acepta valores de entrada o argumentos, los nombres de los mismos van entre los paréntesis y separados por comas.
def imprimeIndiceMasaCorporal (peso, altura):
   IMC = peso / (altura ** 2)
   print IMC
Si devuelve un valor, se usa la palabra reservada return
def imprimeIndiceMasaCorporal (peso, altura):
   IMC = peso / (altura ** 2)
   return IMC
Ejemplo 1. Ejemplo de función retornando la suma de dos elementos
# *-* coding: utf-8 *-*
miNumero = int(raw_input("Dime un numero del 2 al 10: "))
miNumero2 = int(raw_input("Dime un numero del 2 al 10: "))


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

for i in xrange(1, miNumero + 1):
    for j in xrange(1, miNumero2 + 1):
        print ("La suma de: " + str(i) + " y " + str(j) + " = " + str(suma(i, j)))
Como puedes observar simplemente se llama a la función suma a través de suma(primer número, segundo número)
===

Funciones de múltiples resultados

En el siguiente código, la función segA acepta un número entero; sin embargo, devuelve tres variables. Esta propiedad de PYTHON no se comparten en otros entornos de programación, donde sólo se puede devolver un resultado por función.
El programa realiza el cálculo, la conversión, de una cantidad de segundos a formato hora, minuto, segundos.
# *-* coding: utf-8 *-*


def segA(sec):
    # Esta función es capaz de pasar los segundos
    # a horas minutos y segundos
    hs = sec / 3600
    minu = (sec % 3600) / 60
    seg = (sec % 3600) % 60
    return (hs, minu, seg)

segundos = int(raw_input("Introduce el números de segundos que han pasado: "))

(hora, minutos, segundos) = segA(segundos)
print ("%d:%d %d\"") % (hora, minutos, segundos)

No hay comentarios:

Publicar un comentario