La funzione range()
Cos’è range()?
Section titled “Cos’è 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.
Le tre forme di range()
Section titled “Le tre forme di range()”Solo il numero finale: range(fine)
Section titled “Solo il numero finale: range(fine)”Genera numeri da 0 fino a fine - 1 (il numero finale non è incluso):
for i in range(5): print(i)Output:
01234Perché parte da 0? In programmazione si conta quasi sempre da 0. È una convenzione che incontrerai spesso.
range(5)genera 5 numeri, partendo da 0.
Inizio e fine: range(inizio, fine)
Section titled “Inizio e fine: range(inizio, fine)”Genera numeri da inizio fino a fine - 1:
for i in range(2, 7): print(i)Output:
23456Il numero finale (7) non è incluso. È come dire “da 2 incluso a 7 escluso”.
Con il passo: range(inizio, fine, passo)
Section titled “Con il passo: range(inizio, fine, passo)”Il terzo parametro indica di quanto avanzare ad ogni passo:
# Solo i numeri pari da 0 a 10for i in range(0, 11, 2): print(i)Output:
0246810Il passo può anche essere negativo, per contare al contrario:
# Conto alla rovescia da 5 a 1for i in range(5, 0, -1): print(i)
print("Via!")Output:
54321Via!Convertire range in una lista
Section titled “Convertire range in una lista”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]Esempi pratici
Section titled “Esempi pratici”Sommare i numeri da 1 a 100
Section titled “Sommare i numeri da 1 a 100”totale = 0for i in range(1, 101): # da 1 a 100 incluso totale += i
print(totale) # 5050La tabellina di un numero
Section titled “La tabellina di un numero”n = 7for i in range(1, 11): print(f"{n} x {i} = {n * i}")Output:
7 x 1 = 77 x 2 = 14...7 x 10 = 70Accedere 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: melaPosizione 1: bananaPosizione 2: ciliegiaSuggerimento: Nella maggior parte dei casi, è più semplice e leggibile usare
enumerate()invece dirange(len(...)). Vedi il capitolo sui ciclifor.