0Pricing
Python Academy · Lección

Valores devueltos y ámbito

Comprenda las sentencias return y el ámbito de las variables (local frente a global).

Valores devueltos y ámbito es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.

Introducción

Comprender las sentencias return y el ámbito de las variables es fundamental para escribir funciones de Python predecibles y sin errores.

La sentencia return

return expr sale de la función y envía expr a quien la llamó. Un return sin valor envía None.
def double(x):
    return x * 2
print(double(5))

Retorno anticipado

Se permiten varias sentencias return: la primera que se alcanza hace que la función termine. Es útil para las cláusulas de guarda.
def abs_val(x):
    if x < 0:
        return -x
    return x
print(abs_val(-7))

Ámbito local

Las variables creadas dentro de una función son locales: no existen fuera de ella.
def f():
    x = 10
    print(x)
f()
# print(x)  # NameError

Ámbito global

Las variables definidas a nivel de módulo son globales. Las funciones pueden LEER variables globales sin declararlas.
name = 'Alice'
def greet():
    print('Hello', name)  # reads global
greet()

Palabra clave global

global x dentro de una función permite ESCRIBIR en una variable global. Úselo con moderación: dificulta el razonamiento sobre el código.
counter = 0
def increment():
    global counter
    counter += 1
increment()
print(counter)

Palabra clave nonlocal

nonlocal x en una función anidada permite escribir en una variable del ámbito envolvente, aunque no del ámbito global.
def make_counter():
    count = 0
    def inc():
        nonlocal count
        count += 1
        return count
    return inc
c = make_counter()
print(c(), c())

Regla LEGB

Python resuelve los nombres en este orden: Local → Enclosing → Global → Built-in. Esta es la regla LEGB.
x = 'global'
def outer():
    x = 'enclosing'
    def inner():
        print(x)  # enclosing
    inner()
outer()

Retorno de varios valores

def f(): return 1, 2, 3 devuelve una tupla. a, b, c = f() la desempaqueta.
def stats(lst):
    return min(lst), max(lst), sum(lst)/len(lst)
lo, hi, avg = stats([1,2,3,4,5])
print(lo, hi, avg)

Retorno de funciones (cierres)

Una función puede devolver otra función. La función interna recuerda el ámbito externo; esto es un cierre (closure).
def make_adder(n):
    def adder(x):
        return x + n
    return adder
add5 = make_adder(5)
print(add5(3))

None frente a la ausencia de return

Devuelva siempre None explícitamente cuando indique ausencia. Confiar en el None implícito es válido, pero hacerlo explícito resulta más claro.
def find(lst, val):
    for i, x in enumerate(lst):
        if x == val:
            return i
    return None
print(find([1,2,3], 9))

Comprobación rápida

Según la regla LEGB, ¿qué ámbito se comprueba en último lugar?

Resumen

return termina una función y devuelve un valor. Las variables locales no se filtran fuera. Use global/nonlocal para escribir en ámbitos externos. LEGB: Local, Enclosing, Global, Built-in.

Siga avanzando

¡Excelente trabajo! Pase a la siguiente lección para seguir progresando.

Preguntas frecuentes

¿La lección «Valores devueltos y ámbito» es gratis?

Sí — el texto completo de «Valores devueltos y ámbito» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Valores devueltos y ámbito»?

Comprenda las sentencias return y el ámbito de las variables (local frente a global). Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Python Academy?

No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Valores devueltos y ámbito»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Python Academy?

Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Definición y llamada de funciones
  2. Argumentos predeterminados y con nombre
  3. args y kwargs
  4. Valores devueltos y ámbito
← Volver a Python Academy