Menu
Coddy logo textTech

Iteratore di intervallo personalizzato

Lezione 10 di 13 del corso Iteratori in Python di Coddy.

challenge icon

Sfida

Facile

Crea una classe iteratrice personalizzata chiamata StepRange che genera una sequenza di numeri con una dimensione del passo personalizzata. Questa iteratrice dovrebbe imitare il comportamento della funzione incorporata range() di Python, ma con maggiore flessibilità nelle dimensioni del passo.

La classe StepRange dovrebbe:

  • Accettare i parametri start, stop e step nel suo costruttore
  • Implementare il metodo __iter__() per restituire l’oggetto iteratore stesso
  • Implementare il metodo __next__() per generare il valore successivo nella sequenza
  • Gestire dimensioni del passo sia positive che negative
  • Sollevare un’eccezione StopIteration quando la sequenza è esaurita

Dopo aver implementato la classe StepRange, creane un’istanza utilizzando i valori di input e stampa ogni numero generato su una nuova riga.

Verrà fornito il seguente input:

  • Tre numeri interi separati da spazi che rappresentano start, stop e step

Provalo tu

# Leggi l'input
start, stop, step = map(int, input().split())

class StepRange:
    def __init__(self, start, stop, step):
        self.start = start
        self.stop = stop
        self.step = step
        self.current = start

    def __iter__(self):
        return self

    def __next__(self):
        # TODO: Implementa il metodo __next__()
        pass

# Crea un'istanza di StepRange
step_range = StepRange(start, stop, step)

# TODO: Itera su StepRange e stampa ogni valore
# Ricorda di stampare ogni valore su una nuova riga

Tutte le lezioni di Iteratori in Python

Esercitati da solo: Compilatore Python online