Skip to content

La funzione range()

range() è una funzione di Python che genera una sequenza di numeri interi. Si usa moltissimo nei cicli for quando vuoi ripetere qualcosa un numero preciso di volte, o quando vuoi lavorare con numeri in sequenza.

Pensa a range() come a un contatore automatico: tu gli dici da dove partire, dove fermarsi e di quanto saltare ad ogni passo.

Genera numeri da 0 fino a fine - 1 (il numero finale non è incluso):

for i in range(5):
print(i)

Output:

0
1
2
3
4

Perché parte da 0? In programmazione si conta quasi sempre da 0. È una convenzione che incontrerai spesso. range(5) genera 5 numeri, partendo da 0.

Genera numeri da inizio fino a fine - 1:

for i in range(2, 7):
print(i)

Output:

2
3
4
5
6

Il numero finale (7) non è incluso. È come dire “da 2 incluso a 7 escluso”.

Il terzo parametro indica di quanto avanzare ad ogni passo:

# Solo i numeri pari da 0 a 10
for i in range(0, 11, 2):
print(i)

Output:

0
2
4
6
8
10

Il passo può anche essere negativo, per contare al contrario:

# Conto alla rovescia da 5 a 1
for i in range(5, 0, -1):
print(i)
print("Via!")

Output:

5
4
3
2
1
Via!

Se vuoi vedere tutti i numeri generati da un range, convertilo in lista con list():

print(list(range(5))) # [0, 1, 2, 3, 4]
print(list(range(1, 6))) # [1, 2, 3, 4, 5]
print(list(range(0, 10, 2))) # [0, 2, 4, 6, 8]
totale = 0
for i in range(1, 101): # da 1 a 100 incluso
totale += i
print(totale) # 5050
n = 7
for i in range(1, 11):
print(f"{n} x {i} = {n * i}")

Output:

7 x 1 = 7
7 x 2 = 14
...
7 x 10 = 70

Accedere agli elementi di una lista tramite posizione

Section titled “Accedere agli elementi di una lista tramite posizione”
frutta = ["mela", "banana", "ciliegia"]
for i in range(len(frutta)):
print(f"Posizione {i}: {frutta[i]}")

Output:

Posizione 0: mela
Posizione 1: banana
Posizione 2: ciliegia

Suggerimento: Nella maggior parte dei casi, è più semplice e leggibile usare enumerate() invece di range(len(...)). Vedi il capitolo sui cicli for.