Semana 10 Python - ¿Qué es un Procedimiento en Programación? Guía Completa para Python

¿Qué aprendemos hoy?

Vamos a entender qué es un procedimiento en el contexto de la programación con Python y cómo se diferencia de una función. Esta distinción es clave para escribir código más limpio y predecible.

1. Función vs. Procedimiento

Imaginá que tenemos dos bloques de código que procesan dos números. Uno de ellos calcula la suma y te la entrega para que la uses (return resultado). El otro, simplemente muestra la suma en pantalla pero no te entrega ningún valor.

Cuando un bloque de código está diseñado para realizar una acción (como imprimir en pantalla) y no para devolver un valor con la palabra clave return, lo llamamos procedimiento.

2. ¿Qué es un Procedimiento?

Un procedimiento es un bloque de código que:

  • Realiza una tarea específica y autocontenida.
  • No devuelve un valor de forma explícita.
  • Puede modificar el estado del programa, como cambiar el valor de variables globales.
  • Puede recibir datos (parámetros) para realizar su tarea.

Ejemplos claros: Encender una luz en un sistema domótico, mostrar un mensaje de bienvenida, o actualizar un contador global en una aplicación.

Separación de Responsabilidades: Una Buena Práctica

Si una misma rutina realiza acciones (como modificar variables externas) y además devuelve un resultado, puede generar confusión y errores difíciles de rastrear. Por eso, en el desarrollo de software profesional se recomienda:

  • Usar procedimientos para ejecutar acciones.
  • Usar funciones para realizar cálculos y devolver resultados.

3. ¿Qué es el Ámbito (Scope)?

El ámbito define la "visibilidad" de una variable, es decir, desde dónde se puede acceder a ella. Hay tres tipos principales:

  • Global: La variable está disponible en todo el programa.
  • Local: La variable solo existe y es accesible dentro de una función o procedimiento específico.
  • No local: La variable pertenece a una función "padre" o contenedora y es accedida desde una función anidada.

4. Funciones Anidadas y Ámbito No Local

En Python, podemos definir una función dentro de otra. La función interna puede necesitar modificar una variable que no es suya (local) ni tampoco global, sino que pertenece a la función que la contiene. Este es el ámbito no local.

Para indicarle a Python que queremos modificar esa variable externa (y no crear una nueva variable local con el mismo nombre), usamos la palabra clave nonlocal.

5. Palabras Clave Importantes en Python

# Procedimiento que modifica una variable externa (no local)
def contador_externo():
    contador = 0

    def incrementar():
        # Le decimos a Python que 'contador' no es local de 'incrementar'
        nonlocal contador
        contador += 1
        print(f"Contador interno ahora es: {contador}")

    # 'incrementar' es un procedimiento porque no devuelve nada
    incrementar()
    incrementar()

contador_externo() # Salida: ...es 1, ...es 2
  • return: Exclusivo de las funciones para devolver un valor.
  • global: Indica que vamos a modificar una variable del ámbito global.
  • nonlocal: Indica que vamos a modificar una variable de un ámbito superior que no es el global.

Resumen Final

  • Un procedimiento realiza una acción pero no devuelve valores.
  • Una función realiza un cálculo y devuelve un valor con return.
  • El ámbito de una variable puede ser global, local o no local.
  • Usa global o nonlocal para modificar variables que están fuera del ámbito local actual.

Entradas populares de este blog