Itérer sur des itérables (2)
L'une des choses que vous avez vues dans ce chapitre, c'est que tous les itérables ne sont pas de vraies listes. Parmi les exemples, on a notamment les chaînes de caractères et l'utilisation de la fonction range(). Dans cet exercice, nous allons nous concentrer sur range().
Vous pouvez utiliser range() dans une boucle for comme s'il s'agissait d'une liste à parcourir :
for i in range(5):
print(i)
Rappelez-vous que range() ne crée pas réellement la liste ; il crée plutôt un objet range avec un itérateur qui produit les valeurs jusqu'à atteindre la limite (dans l'exemple, jusqu'à la valeur 4). Si range() créait la véritable liste, l'appeler avec une valeur de \(10^{100}\) pourrait ne pas fonctionner, surtout qu'un nombre aussi grand pourrait dépasser la mémoire d'un ordinateur ordinaire. La valeur \(10^{100}\) s'appelle en fait un Googol, soit un 1 suivi de cent zéros. C'est énorme !
Votre tâche dans cet exercice est de montrer qu'appeler range() avec \(10^{100}\) ne précrée pas réellement la liste.
Cette activité fait partie du cours
Boîte à outils Python
Instructions de l’exercice
- Créez un objet itérateur
small_valuesurrange(3)à l'aide de la fonctioniter(). - À l'aide d'une boucle
for, itérez surrange(3)et affichez la valeur à chaque itération. Utiliseznumcomme variable de boucle. - Créez un objet itérateur
googolsurrange(10 ** 100).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Create an iterator for range(3): small_value
small_value = ____
# Print the values in small_value
print(next(small_value))
print(next(small_value))
print(next(small_value))
# Loop over range(3) and print the values
# Create an iterator for range(10 ** 100): googol
googol = ____
# Print the first 5 values from googol
print(next(googol))
print(next(googol))
print(next(googol))
print(next(googol))
print(next(googol))