CommencerCommencer gratuitement

Itérer sur des tables itératives (2)

L'une des choses que vous avez apprises dans ce chapitre est que tous les itérables ne sont pas de véritables listes. Les chaînes de caractères et l'utilisation de la fonction range() sont quelques exemples que nous avons étudiés. Dans cet exercice, nous nous concentrerons sur la fonction 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'à ce qu'il atteigne la limite (dans l'exemple, jusqu'à la valeur 4). Si range() a créé la liste réelle, l'appeler avec une valeur de \(10^{100}\) peut ne pas fonctionner, d'autant plus qu'un nombre aussi grand peut dépasser la mémoire d'un ordinateur normal. La valeur \(10^{100}\) est en fait ce qu'on appelle un Googol, c'est-à-dire un 1 suivi de cent 0. C'est un chiffre énorme !

Votre tâche pour cet exercice est de montrer que l'appel à range() avec \(10^{100}\) ne va pas réellement précréer 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 imprimant la valeur à chaque itération. Utilisez num comme variable de la 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