5.1 Función – Reusar algoritmos

Cuando un algoritmo es usado de forma frecuente, en lugar de repetir las instrucciones cada vez que se necesitan, se pueden resumir y extraer en un bloque dedicado.

Si cada algoritmo sigue la «estructura básica», la función es un bloque que se podrá reutilizar en cualquier otro problema y trabaja de forma «modular».

El bloque se identifica con un nombre de la función
y usa las variables de entrada (a)
y variable de salida (z).

En programación estructurada, al cambiarse los bloques de entrada (input) y los bloques de salida (print), las instrucciones de entrada y salida se las mantiene dentro del programa principal que llama a las funciones.

La definición de una función en Python se escribe como:

def funcion(entrada):
    # intrucciones
    # detalladas de la funcion
    return(respuesta)

Definida la función se puede usar una o varias veces en un programa principal usando el nombre de la función junto a la variable de entrada.

El resultado de la función se asigna a una variable que es usada dentro del programa principal.

resultado = funcion(entrada)

Se pueden hacer tantas llamadas a la función como sean necesarias.

Las funciones se pueden realizar usando variables tipo escalar (enteras, reales), vectoriales o matriciales, tipo texto o cadena de caracteres, etc.

Las variables escalares se declaran como variables internas a la función, mientras que las variables vectoriales o matriciales tienen un alcance global.

Referencia: Rodriguez 6.1 p155, Van Rossum p19



Variables dentro de una función

Las variables dentro de una función se tratan como variables de un algoritmo aparte.Por lo que los nombres de las variables internas, no afectan a las variables del algoritmo principal.

Exceptuando el caso de Arreglos y listas que el paso es por «referencia» (o álias), pues se considera que si las matrices y vectores del problema son de gran tamaño, crear copias de cada una de ellas dentro de cada llamada a la función ocupa memoria que podría ser usada para otras tareas.


Estructura del Algoritmo con funciones creadas por usuario

Cuando el algoritmo tiene funciones básicas creadas por usted, y son relativamente «pequeñas», se incluyen dentro del bloque de inicio.

# INICIO
# Referencia del problema
import numpy as np
import random as np
# funciones creadas por usuario
def miprimerafuncion(variableentrada,otravariable):
    # algunas instrucciones
    return(respuesta)

# INGRESO
a = int(input(' un numero entero'))
b = float(input(' un numero real'))

# PROCEDIMIENTO
respuesta =  miprimerafuncion(a,b)

# SALIDA
print('alguna respuesta: ',respuesta)

Si las funciones son varias o siempre usa esas funciones las puede incluir en un archivo .py y llamarlas desde el archivo con el algoritmo principal. Detalles en el siguiente tema publicado.