¿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:
Si acepta valores de entrada o argumentos, los nombres de los mismos van entre los paréntesis y separados por comas.
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.
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 IMCSi 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)