Funciones y subrutinas
Una función es un bloque de código diseñado para realizar una tarea específica y devolver un valor. Se invoca mediante su nombre y puede aceptar parámetros de entrada.
Una subrutina, también conocida como procedimiento o rutina, es un bloque de código que realiza una tarea específica pero no devuelve un valor. Se utiliza principalmente para organizar y reutilizar código.
Ambos conceptos son fundamentales en la programación, ya que permiten estructurar el código de manera eficiente y modular.
Es importante aclarar que función y subrutina se escriben de igual manera y sobre los mismos conceptos en Python. La diferencia principal entre una función y una subrutina es que una función retorna un valor como resultado, mientras que una subrutina no retorna nada.
Similitudes
-
Modularidad: Tanto las funciones como las subrutinas permiten dividir un programa en secciones más pequeñas y manejables, lo que facilita la comprensión y el mantenimiento del código.
-
Reutilización de Código: Ambos permiten reutilizar código, evitando la duplicación y promoviendo la eficiencia en el desarrollo.
-
Parámetros: Tanto las funciones como las subrutinas pueden aceptar parámetros, lo que les permite recibir información externa para realizar sus tareas.
Diferencias
Para comprender mejor las diferencias, veámoslas en la siguiente tabla:
Característica | Función | Subrutina |
---|---|---|
Valor de Retorno | Devuelve un valor | No devuelve un valor |
Uso | Utilizada para cálculos y retornos | Utilizada para ejecutar tareas específicas |
Sintaxis | Generalmente incluye una declaración de retorno | No requiere declaración de retorno |
Propósito | Realizar cálculos y devolver resultados | Ejecutar acciones o modificar el estado |
¿Qué es un bloque de código en Python?
Se le denomina bloque de código al fragmento código que se encuentra indentado respecto de otro fragmento de código. En Python, los bloques de código se definen mediante la indentación, es decir, la cantidad de espacios o tabulaciones que preceden a una línea de código (pero no se pueden mezclar ambos métodos de indentación en un mismo bloque de código).
Un bloque de código se encuentra asociado a la línea de código que lo precede y que lo define. Esto significa que dicho bloque de líneas de código indentadas solo debería ejecutarse si la línea de código precedente le indica a la computadora que lo haga.
Los bloques de código se utilizan en estructuras de control, funciones, clases y otros elementos de un programa que requieren agrupar instrucciones. No te preocupes por esta terminología aún. Más adelante profundizaremos en estos conceptos.
Ejemplo de bloque de código en estructura de control | |
---|---|
En el ejemplo anterior, las líneas 2 y 3 forman un bloque de código que se ejecuta si la condición x > 0
es verdadera. La indentación de las líneas 2 y 3 indica que pertenecen al mismo bloque de código. Ya estudiaremos esto con mayor detalle más adelante.
Indentación
La indentación es una técnica utilizada en programación que consiste en agregar espacios o tabulaciones al inicio de las líneas de código para mejorar su legibilidad y organización. Este estilo de "sangrado" permite a los programadores identificar fácilmente la estructura y jerarquía del código, lo que es crucial para entender su funcionamiento.
Una línea de código indentada indica que esa línea está dentro de un bloque de código.En Python, la indentación es obligatoria y fundamental, ya que se utiliza para definir la estructura y jerarquía del código.
La convención más común es utilizar 4 espacios, o (yo prefiero) utilizar 1 tabulación, para marcar cada nivel de indentación. ¡Si! Tu código puede tener múltiples niveles de tabulación:
def funcion_ejemplo():
# Primer nivel de indentación
if condicion:
# Segundo nivel de indentación
print("Bloque 1")
else: # Esto también forma parte del primer nivel de indentación anterior
# Segundo nivel de indentación diferente al segundo nivel anterior
print("Bloque 2")
Es muy importante no equivocarse con la indentación, ya que un error en un espacio de más o un espacio de menos puede provocar errores de sintaxis y comportamientos inesperados en el programa:
¿Qué pasa si no utilizas la indentación?
Python es diferente a muchos lenguajes de programación respecto de la indentación (llamada también tabulación o sangría).
Si no utilizas la indentación, tu programa no funcionará. Esto es un requisito. Python no utiliza llaves { ... }
para delimitar bloques de código, de la misma manera en que lo hacen lenguajes como C, C++ y Java. Python se basa, de hecho, en la indentación para delimitar distintos bloques de código, unos de otros.
Es posible que si programas en otros lenguajes no estés acostumbrado a indentar tu código. En Python será obligatorio que lo hagas. Así que mejor acostúmbrate. No solo es una buena práctica; si no que además, con el tiempo, te darás cuenta que la legibilidad de tus código mejorará increíblemente.
Ejemplos de función y subrutina
def imprimir_mensaje(mensaje):
print(mensaje)
imprimir_mensaje("Hola, mundo") # Imprime "Hola, mundo"
Resumen
Las funciones y subrutinas son herramientas esenciales en la programación que ayudan a estructurar el código de manera eficiente.
La principal diferencia radica en que las funciones devuelven un valor, mientras que las subrutinas se enfocan en realizar acciones sin devolver resultados.
Ambas son fundamentales para la creación de programas modulares, escalables y mantenibles.
A continuación, profundizaremos en la creación y uso de funciones en Python, explorando sus características y aplicaciones en diferentes contextos de programación.