Code Explanation:
Function Definition
def repeat_double(n):
Defines a generator function named repeat_double that takes a single argument n.
The generator will yield (produce) values one at a time when iterated over.
Loop Through Range
for i in range(n):
A for loop runs from i = 0 to i = n - 1.
range(n) generates a sequence of numbers: [0, 1, 2, ..., n-1].
Yield First Value
yield i
yield pauses the function and returns the value of i to the caller.
The function's state is saved so it can resume from here later.
Yield Double Value
yield i * 2
After yielding i, the function resumes and yields i * 2 (i.e., double the value).
So for each iteration, it gives two values: i and i*2.
Calling the Function and Printing
print(list(repeat_double(3)))
Calls the repeat_double generator with n = 3.
This means the loop runs for i = 0, 1, and 2.
The values yielded are:
For i = 0: yields 0, 0
For i = 1: yields 1, 2
For i = 2: yields 2, 4
These values are collected into a list using list().
Final Output
[0, 0, 1, 2, 2, 4]
Download Book - 500 Days Python Coding Challenges with Explanation


0 Comments:
Post a Comment