CommencerCommencer gratuitement

Itérer sur des itérables (2)

L'une des choses que vous avez apprises dans ce chapitre, c'est que tous les itérables ne sont pas de véritables listes. Deux exemples que nous avons vus sont 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 liste réelle, l'appeler avec une valeur de \(10^{100}\) ne fonctionnerait probablement pas, d'autant qu'un nombre aussi grand pourrait dépasser la mémoire d'un ordinateur classique. La valeur \(10^{100}\) est en fait ce qu'on appelle un Googol, c'est-à-dire un 1 suivi de cent zéros. C'est un nombre immense !

Votre tâche dans cet exercice est de montrer qu'appeler range() avec \(10^{100}\) ne précrée pas effectivement la liste.

Cet exercice fait partie du cours

Boîte à outils Python

Afficher le cours

Instructions

  • Créez un objet itérateur small_value sur range(3) à l'aide de la fonction iter().
  • À l'aide d'une boucle for, itérez sur range(3) en affichant la valeur à chaque itération. Utilisez num comme variable de boucle.
  • Créez un objet itérateur googol sur range(10 ** 100).

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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))
Modifier et exécuter le code