w3resource

Python Generators: Yielding cubes from 1 to n


1. Cubes Generator

Write a Python program that creates a generator function that yields cubes of numbers from 1 to n. Accept n from the user.

Sample Solution:

Python Code:

def cube_generator(n):
    for i in range(1, n + 1):
        yield i ** 3

# Accept input from the user
n = int(input("Input a number: "))

# Create the generator object
cubes = cube_generator(n)

# Iterate over the generator and print the cubes
print("Cubes of numbers from 1 to", n)
for num in cubes:
    print(num)

Sample Output:

Input a number:  10
Cubes of numbers from 1 to 10
1
8
27
64
125
216
343
512
729
1000

Explanation:

In the above exercise -

  • Inside the "cube_generator()" function, a for loop iterates over the range of numbers from 1 to n + 1. For each number i, it calculates the cube by raising i to the power of 3 using the ** operator.
  • Instead of using the return statement to return the cube value, it uses the yield keyword. This makes the function a generator, allowing it to generate and yield one cube value at a time when requested.
  • The program prompts the user to input a number using the input() function. The input value is then converted to an integer using int() and stored in n.
  • The generator object "cubes" is created by calling the cube_generator function with n. This sets up the generator and prepares it for iteration.
  • The program then iterates over the "cubes" generator using a for loop. For each iteration, the next cube value is generated and assigned to the variable num.
  • The cube values are printed one by one inside the loop using print().

Flowchart:

Flowchart: Yielding cubes from 1 to n

For more Practice: Solve these Related Problems:

  • Write a Python function that yields cubes of numbers from 1 to n and prints the cube for each number.
  • Write a Python program that uses a generator to produce cubes from 1 to n, then sums these cubes and prints the result.
  • Write a Python script that generates cubes using a generator and outputs the cubes in a single comma‐separated string.
  • Write a Python program that yields cubes from 1 to n and filters out cubes that are even before printing them.

Go to:


Previous: Python Generators Yield Exercise Home.
Next: Python random number generator using generators.

Python Code Editor:

Contribute your code and comments through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.