IniziaInizia gratis

Iterazione su iterabili (2)

Una delle cose che hai imparato in questo capitolo è che non tutti gli iterabili sono vere e proprie liste. Un paio di esempi che abbiamo visto sono le stringhe e l'uso della funzione range(). In questo esercizio ci concentreremo sulla funzione range().

Puoi usare range() in un ciclo for come se fosse una lista da iterare:

for i in range(5):

    print(i)

Ricorda che range() in realtà non crea la lista; invece, crea un oggetto intervallo con un iteratore che produce i valori fino a raggiungere il limite (nell'esempio, fino al valore 4). Se range() ha creato la lista vera e propria, chiamarla con un valore di \(10^{100}\) potrebbe non funzionare, soprattutto perché un numero così grande potrebbe superare la memoria di un normale computer. Il numero \(10^{100}\) è in realtà quello che si chiama un Googol, cioè un 1 seguito da cento zeri. È un numero pazzesco!

Il tuo compito in questo esercizio è dimostrare che chiamare range() con \(10^{100}\) non crea effettivamente la lista in anticipo.

Questo esercizio fa parte del corso

Strumenti per Python

Visualizza il corso

Istruzioni dell'esercizio

  • Crea un oggetto iteratore small_value su range(3) usando la funzione iter().
  • Usa un ciclo " for " e ripeti " range(3)", stampando il valore per ogni ripetizione. Usa num come variabile del ciclo.
  • Crea un oggetto iteratore googol su range(10 ** 100).

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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))
Modifica ed esegui il codice