Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Infinite Generators | Spécification de la valeur de retour de fonction
Tutoriel sur les Fonctions Python
Section 4. Chapitre 5
single

single

bookInfinite Generators

Glissez pour afficher le menu

Recall that yield pauses a generator and resumes it on the next next() call. So far, the generators you have seen had a clear stopping point. But generators become especially powerful when combined with an infinite loop – producing values indefinitely without ever storing them in memory.

Infinite Generators with while True

Using a while True loop inside a generator creates an infinite sequence – something that would be impossible to store as a list. The generator only produces the next value when next() is called:

1234567891011
def counter(): count = 1 while True: # Runs forever yield count # Return current value and pause count += 1 # Resume from here on the next call gen = counter() print(next(gen)) # 1 print(next(gen)) # 2 print(next(gen)) # 3
copy

No matter how many times you call next(), the generator will always have a new value ready – it never runs ahead or stores values in memory.

Controlling an Infinite Generator

Since the generator runs forever, you need to control how many values you retrieve. The most common way is using a for loop with range():

12345678910
def counter(): count = 1 while True: yield count count += 1 gen = counter() for _ in range(5): print(next(gen)) # 1, 2, 3, 4, 5
copy
Note
Note

Never iterate over an infinite generator with a plain for loop without a stopping condition – it will run forever and crash your program.

Tâche

Glissez pour commencer à coder

Generate unique user IDs using an infinite generator function. The id_generator() function should continuously produce identifiers like "ID_1", "ID_2", etc.

  1. Initialize the variable count with the value 1, as identifiers start from 1.
  2. Use an infinite while loop to continuously generate identifiers.
  3. Use yield to return the current identifier in the format f"ID_{count}".
  4. Increment count by 1 after each iteration.
  5. Initialize the generator object id_gen by calling id_generator().

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 5
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt