Skip to main content

Ejercicios con generadores

Enunciado del Ejercicio: Generador de Secuencias Fibonacci

Escribe un programa en Python que implemente un generador para generar una secuencia de números de Fibonacci. La secuencia de Fibonacci es una serie de números en la que cada número es la suma de los dos números anteriores, comenzando con 0 y 1.

El generador debe producir la secuencia de Fibonacci de manera infinita, es decir, debe ser capaz de generar números de Fibonacci indefinidamente. El programa debe permitir al usuario especificar cuántos números de Fibonacci desea generar o si desea continuar generando números indefinidamente.

El programa debe incluir las siguientes funcionalidades:

  1. Un generador llamado fibonacci_generator que produzca la secuencia de números de Fibonacci de manera infinita.

  2. Un bucle que permita al usuario especificar cuántos números de Fibonacci desea generar o si desea continuar generando números indefinidamente.

  3. Manejo de entrada de usuario para permitir que el usuario especifique la cantidad de números de Fibonacci a generar o si desea generar indefinidamente.

  4. Salida de los números de Fibonacci generados de manera ordenada, ya sea hasta el número especificado por el usuario o hasta que el usuario decida detener la generación.

Ejemplo de interacción con el programa:

¿Cuántos números de Fibonacci deseas generar? (Ingresa 0 para generar indefinidamente): 10
Secuencia de Fibonacci:
0 1 1 2 3 5 8 13 21 34

Enunciado del Ejercicio: Generador de Potencias de un Número

Escribe un programa en Python que implemente un generador para generar las potencias de un número dado. El programa debe permitir al usuario especificar la base y el límite superior de las potencias a generar.

El generador debe producir las potencias del número dado, comenzando desde la potencia cero (1) hasta el límite superior especificado por el usuario.

El programa debe incluir las siguientes funcionalidades:

  1. Solicitar al usuario que ingrese la base y el límite superior de las potencias.
  2. Definir un generador llamado power_generator que produzca las potencias del número dado.
  3. Utilizar el generador para generar las potencias del número, desde la potencia cero hasta el límite superior especificado por el usuario.
  4. Mostrar las potencias generadas de manera ordenada.

Ejemplo de interacción con el programa:

Ingrese la base: 2
Ingrese el límite superior de las potencias: 4
Potencias de 2 hasta el límite superior 4:
1 2 4 8

En este ejemplo, el usuario ingresó la base 2 y el límite superior de las potencias como 4. El programa generó las potencias de 2, comenzando desde 2^0 hasta 2^4, y las mostró de manera ordenada.


Enunciado del Ejercicio: Procesamiento de Archivos con Generadores

Desarrolla un programa en Python que lea un archivo de texto línea por línea y cuente el número total de palabras en el archivo. El programa debe implementar un generador llamado line_reader que lea el archivo línea por línea y produzca cada línea como una cadena de caracteres. Luego, implementa otro generador llamado word_counter que reciba cada línea del archivo y genere el número de palabras en esa línea.

El programa debe incluir las siguientes funcionalidades:

  1. Solicitar al usuario que ingrese la ruta del archivo de texto a procesar.
  2. Definir un generador llamado line_reader que lea el archivo línea por línea y produzca cada línea como una cadena de caracteres.
  3. Definir un generador llamado word_counter que reciba cada línea del archivo y genere el número de palabras en esa línea.
  4. Utilizar los generadores para procesar el archivo línea por línea y contar el número total de palabras en el archivo.
  5. Mostrar el número total de palabras en el archivo al final del procesamiento.

Ejemplo de interacción con el programa:

Ingrese la ruta del archivo de texto: archivo.txt
Número total de palabras en el archivo 'archivo.txt': 125

En este ejemplo, el programa leyó el archivo "archivo.txt" línea por línea utilizando el generador line_reader, y luego contó el número total de palabras en todas las líneas utilizando el generador word_counter. Finalmente, mostró el número total de palabras en el archivo.