range()

Gli oggetti di tipo range, intervalli, si utilizzano nei cicli for

Osserva

  1. Un intervallo rappresenta una sequenza immutabile di numeri interi
  2. Gli intervalli implementano le operazioni sulle sequenze comuni tranne concatenazione e ripetizione
  3. Un intervallo memorizza START, STOPSTEP e calcola i singoli elementi o intervalli al volo (non occupa memoria superflua)

Costruttori

range(STOP)[0, 1, …, STOP)
range(START, STOP)[START, START+1, …, STOP)
range(START, STOP, STEP)[START, START+STEP, START+2*STEP, …, STOP)
r[i]=START + i*STEP
START <= r[i] < STOP

range(START, STOP, -STEP)[START, START-STEP, START-2*STEP, …, STOP)
r[i]=START – i*STEP
START >= r[i] > STOP

Osserva

  1. START, STOP, STEP devono essere interi
  2. Se STEP = 0 si ottiene un errore
  3. Se STOP <= START e il passo è positivo si ottiene un intervallo vuoto
  4. Le costanti START, STOP, STEP si utilizzano anche nello SLICING

Operatori

r1 == r2Gli intervalli sono uguali?
Le sequenze effettive…
r1 != r2Gli intervalli sono diversi?
Le sequenze effettive…
x in r1x appartiene a r1?
x not in r1x NON appartiene a r1?
r1[p]L’elemento alla posizione p
r1[n1 : n2 : n3]Restituisce un range (costruito tramite SLICING)

Funzioni / metodi

r1.count(x)Restituisce il numero di occorrenze di x
r1.index(x)Restituisce la posizione della prima occorrenza di x
len(r1)Restituisce il numero di elementi
max(r1)Restituisce il valore massimo
min(r1)Restituisce il valore minimo
sum(r1)Restituisce la somma degli elementi
...

Prova

Un oggetto di tipo range() permette molte manipolazioni inaspettate…