Saltar al contenido

Generadores con yield

Python · Unidad 15: Comprensiones y generadores

Una función con yield en vez de return es un generador: en lugar de un solo resultado, entrega muchos, uno a la vez.

Llamarla no corre el cuerpo todavía. Con list() le pides todos los valores de golpe.

def contar(n):
    for i in range(n):
        yield i

print(list(contar(3)))

Imprime

[0, 1, 2]

El resto de la explicación está en la lección, que es del plan completo.

Ejercicios de esta lección

Se hacen en la app, que los corrige al momento y explica por qué.

  1. 1. Predice la salida

    ¿Qué imprime este código?

  2. 2. Completa el código

    Completa para que la función entregue los números pares.

  3. 3. Predice la salida

    ¿Qué imprime este código?

  4. 4. Ordena las líneas

    Ordena para armar un generador de los números impares menores que n.

  5. 5. Encuentra el bug

    Debería entregar el cuadrado de cada número, de 0 a n menos 1. ¿Qué línea tiene el error?

  6. 6. Predice la salida

    ¿Qué imprime este código?

  7. 7. Completa el código

    Completa para quedarte con los tres primeros valores del generador.

  8. 8. Opción múltiple

    naturales() nunca termina. ¿Por qué no se cuelga el programa?

  9. 9. Predice la salida

    ¿Qué imprime este código?

  10. 10. Predice la salida

    ¿Qué imprime este código?

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →