Vai al contenuto principale

Tutorial sulla funzione range() di Python

Scopri la funzione range() di Python e le sue potenzialità con l'aiuto di esempi.
Aggiornato 3 giu 2026  · 7 min leggi

La funzione range() è molto popolare e ampiamente utilizzata in Python, soprattutto quando lavori con i cicli for e, a volte, anche con i cicli while. Vale la pena conoscerla e padroneggiarla perché ti aprirà molte porte: range() viene usata per tutto, dal controllo del flusso di un programma al loop attraverso insiemi di dati che utilizzi per l'analisi.

Se stai iniziando ora con Python e vuoi saperne di più, segui il corso di DataCamp Introduction to Data Science in Python.

Che cos'è la funzione range() in Python?

La funzione range() restituisce una sequenza di numeri ed è immutabile, cioè il suo valore è fisso. Accetta uno o al massimo tre argomenti: il valore di start, quello di stop e la dimensione del step.

range() è stata introdotta in Python 3. In Python 2 si usava una funzione simile, xrange(), che aveva un comportamento in parte diverso. Tra le altre cose, xrange() restituiva un oggetto generatore e consumava meno memoria, mentre range(), invece, restituisce un elenco o una sequenza di numeri.

Una delle ragioni per cui la funzione range() è utile è che memorizza solo i valori di start, stop e step, quindi consuma meno memoria rispetto a una lista o a una tupla.

Sintassi della funzione range() in Python

La funzione range() può essere rappresentata in tre modi diversi, o, se preferisci, come tre parametri di range():

  • range(stop_value): per impostazione predefinita, il punto di partenza è zero.
  • range(start_value, stop_value): genera la sequenza in base ai valori di start e stop.
  • range(start_value, stop_value, step_size): genera la sequenza incrementando il valore iniziale usando la dimensione dello step fino a raggiungere il valore di stop.
Esempio della funzione range di Python
Funzione range() di Python. Immagine dell'autore.

Possiamo anche controllare il tipo dell'oggetto restituito da range() racchiudendo range() in type().

my_range = range(100)
print(type(my_range))

# Expected output: <class 'range'>

Esempi della funzione range() in Python

Vediamo ora alcuni esempi per esercitarti e padroneggiare l'uso di range().

Usare range() di Python per stampare una sequenza di numeri

Iniziamo con un semplice esempio: stampare una sequenza di dieci numeri, che coprirà il primo parametro di range(). Per farlo, passerai solo il valore di stop. Poiché Python usa un indicizzazione a base zero, la sequenza inizierà da zero e si fermerà al numero specificato, cioè a n-1, dove n è il numero indicato nella funzione range().

my_range = range(10)

for num in my_range:
	print(num)

# Expected output:
# 0
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9

Come previsto, la cella sopra restituisce una sequenza di numeri che inizia con 0 e termina con 9.

Usare range() di Python con list()

Puoi anche usare la funzione range come argomento di una lista; in tal caso otterrai una lista di numeri con una lunghezza uguale al valore di stop, come mostrato di seguito:

my_range = list(range(10))
print(my_range)

range_length = len(my_range)
print(range_length)

# Expected output:
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 10

Usare start, stop e step in range() di Python

Vediamo ora un altro modo di lavorare con la funzione range(). Qui specificherai sia il valore di start sia quello di stop.

my_range = range(5, 10)
print(my_range)

# Expected output: range(5, 10)
for num in range(5,10):
    print(num)

# Expected output:
# 5
# 6
# 7
# 8
# 9

Allo stesso modo, puoi usare la funzione range() anche per stampare valori interi negativi.

for num in range(-5,0):
    print(num)

# Expected output:
# -5
# -4
# -3
# -2
# -1

Aggiungiamo ora il terzo parametro, cioè la dimensione dello step, alla funzione range() e vediamo come influisce sull'output. Imposterai il punto di start a 50, il valore di stop a 1000 con uno step di 100. La funzione range qui sotto dovrebbe restituire una sequenza che parte da 50 e incrementa di 100.

my_range = range(50,1000,100)
print(my_range)

# Expected output: range(50, 1000, 100)

Noterai che stamperà tutti numeri pari.

for num in range(50,1000,100):
    print(num)

# Expected output:
# 50
# 150
# 250
# 350
# 450
# 550
# 650
# 750
# 850
# 950

Una nota su range() di Python e i valori float

È importante notare che la funzione range() funziona solo quando il valore specificato è un intero o un numero naturale. Non supporta il tipo di dato float né il tipo stringa. Tuttavia, puoi passarle sia valori interi positivi che negativi. Vediamo cosa succede quando provi a passare valori float.

for num in range(0.2,2.4):
    print(num)

# Expected output:
# TypeError: 'float' object cannot be interpreted as an integer

Se hai programmato in C, probabilmente ti sei grattato la testa almeno una volta cercando di invertire una lista collegata di valori interi. In Python, invece, puoi farlo con la funzione range() semplicemente invertendo start e stop e aggiungendo uno step negativo. Non è semplicissimo? Vediamolo!

for num in range(100,10,-10):
    print(num)

# Expected output:
# 100
# 90
# 80
# 70
# 60
# 50
# 40
# 30
# 20

Usare range() per trovare la somma di una lista

Mettiamo che tu abbia una lista di valori interi e voglia calcolarne la somma usando la funzione range(). Vediamo come si può fare.

Per prima cosa definisci la lista composta da valori interi. Poi inizializza un contatore in cui memorizzerai il valore a ogni iterazione della lista e aggiungi il valore corrente della lista al valore precedente del contatore.

Per accedere agli elementi della lista, applica la funzione range() alla lunghezza della lista e poi accedi agli elementi passando l'indice i, che partirà da zero e si fermerà alla lunghezza della lista.

list1 = [2,4,6,8,10,12,14,16,18,20]
count = 0

for i in range(len(list1)):
    count = count + list1[i]
    print(count)
print('sum of the list:', count)

# Expected output:
# 2
# 6
# 12
# 20
# 30
# 42
# 56
# 72
# 90
# 110
# sum of the list: 110

Usare range() con itertools per concatenare una lista

Puoi anche concatenare due o più funzioni range() usando la classe chain del pacchetto itertools. E non solo la funzione range: puoi concatenare anche liste, tuple, ecc. Ricorda che il metodo chain restituisce un oggetto generatore; per accedere agli elementi di quell'oggetto puoi usare un ciclo for oppure list passando il generatore come argomento.

from itertools import chain

a1 = range(10,0,-2)
a2 = range(30,20,-2)
a3 = range(50,40,-2)

final = chain(a1,a2,a3)

print(final) #generator object

# Expected output: <itertools.chain object at 0xae6330>
print(list(final))

# Expected output:
# [10, 8, 6, 4, 2, 30, 28, 26, 24, 22, 50, 48, 46, 44, 42]

range() di Python e confronti di uguaglianza

Puoi applicare confronti di uguaglianza tra funzioni range(). Date due funzioni range(), se rappresentano la stessa sequenza di valori, allora sono considerate uguali. Detto ciò, due funzioni range() uguali non devono necessariamente avere gli stessi attributi di start, stop e step. Vediamolo con un esempio.

# range(0, 10, 3) = [0, 3, 6, 9]
# range(0, 11, 3) = [0, 3, 6, 9]

print(range(0, 10, 3) == range(0, 11, 3))

# Expected output: True
# range(0, 10, 3) = [0, 3, 6, 9]
# range(0, 11, 2) = [0, 2, 4, 6, 8, 10]

print(range(0, 10, 3) == range(0, 11, 2))

# Expected output: False

Come puoi vedere dagli output sopra, anche se i parametri della funzione range() sono diversi, sono comunque considerate uguali perché la sequenza di entrambe le funzioni è la stessa. Nel secondo esempio, modificare la dimensione dello step rende il confronto False.

Conclusione

Complimenti per aver terminato il tutorial. Potresti voler sperimentare un po' con la funzione range() e trovare un modo per personalizzarla affinché accetti tipi di dato oltre ai soli interi.

Se, dopo la lettura, pensi che ti farebbe comodo esercitarti con le funzioni di Python, dai un'occhiata ai nostri tutorial Python Functions e Beginner's Guide to Python for Loops. Per un percorso di apprendimento strutturato, consulta il corso di DataCamp Writing Efficient Python Code, che non solo copre in dettaglio la funzione range(), ma affronta anche concetti di programmazione più generali per aiutarti a scrivere codice davvero efficiente senza troppo overhead.

Argomenti

Approfondisci Python

Corso

Strumenti per Python

4 h
317.8K
Continua a migliorare le tue competenze nella scienza dei dati imparando a usare gli iteratori e le comprensioni di lista.
Vedi dettagliRight Arrow
Inizia il corso
Mostra altroRight Arrow
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra altroMostra altro