Subrutinas
Una subrutina es una parte separada del programa que tiene un nombre y resuelve su propia tarea separada. La subrutina se encuentra al comienzo del programa principal y se puede iniciar (llamar) desde el programa principal especificando el nombre.
El uso de subrutinas le permite evitar la duplicación de código, si necesita escribir el mismo código en diferentes lugares del programa.
Las bibliotecas que se importan a un programa (por ejemplo, la biblioteca de matemáticas math) consisten en subrutinas que ya han sido compiladas por alguien. Los programadores no necesitan pensar en qué algoritmos implementarán, sino simplemente aplicarlos, pensando solo en lo que están haciendo exactamente. Este es un gran ahorro de tiempo. No es necesario escribir un algoritmo que ya haya sido escrito por otra persona.
Cada subrutina
solo debe hacer una tarea, simplemente calcule algo, genere algunos datos o haga otra cosa.
Hay dos tipos de subrutinas:
procedimientos y
funciones.
Los subprocedimientos realizan alguna acción, como mostrar un resultado en la pantalla de cierta forma (un ejemplo simple, la declaración
print()
es un subprocedimiento estándar que imprime datos en la pantalla).
Las subrutinas de función
devuelven un resultado (número, cadena de caracteres, etc.) que podemos usar en el programa principal.
Tratemos de escribir un procedimiento simple:
Supongamos que necesitamos mostrar la cadena "Error" en la pantalla cada vez que puede ocurrir un error en el código por culpa del usuario, por ejemplo, cuando ingresa datos incorrectos.
Esto se puede hacer escribiendo la declaración
imprimir("Error")
Y ahora imagine que esa línea debe insertarse en muchos lugares del programa. Por supuesto, puedes escribirlo en todas partes. Pero esta solución tiene dos inconvenientes.
1) Esta cadena se almacenará en la memoria muchas veces.
2) Si queremos cambiar la salida en caso de error, tendremos que cambiar esta línea en todo el programa, lo cual es bastante inconveniente
Para tales casos, se necesitan procedimientos.
Un programa con un procedimiento podría verse así:
def printError(): # descripción del procedimiento
imprimir("Error")
...
printError() # inicia el procedimiento para su ejecución.
# Solo especifica el nombre del procedimiento que queremos ejecutar
...
imprimirError()
¡Necesito recordar!
- El procedimiento comienza con la palabra
def
(del inglés - define - para definir). Después del nombre del procedimiento, se escriben corchetes vacíos y dos puntos . Los parámetros se pueden especificar entre corchetes (hablaremos de esto más adelante).
- Todas las sentencias que se ejecutan en un procedimiento están sangradas.
- Para ejecutar un procedimiento, en el programa principal debe llamarlo por su nombre y recuerde escribir paréntesis!
- Puede llamar a un procedimiento en un programa tantas veces como desee.