Python prevede solo due tipi di ripetizioni (cicli, iterazioni)
In altri linguaggi sono presenti molte più strutture di controllo
Ripetizioni equivalenti
Esempi di codice equivalente for ↔ while
Osserva
- Il valore dell’indice i viene utilizzato per stampare una colonna di numeri
- Il codice Python è confrontato con l’equivalente in linguaggio C
Sequenza | Python | C, C++, Java, Javascript, … |
---|
0 1 2 3 4 5 6 7 8 9 |
|
for i in range(10): print(i) |
|
|
for(i=0; i < 10; i+=1) ...; |
|
| |
|
for(i=0; i <= 9; i+=1) ...; |
|
|
|
i=0 while(i < 10): print(i) i+=1 |
|
|
i=0; while(i < 10) { ...; i+=1; } |
|
|
|
i=0 while(i <= 9): print(i) i+=1 |
|
|
i=0; while(i < 10) { ...; i+=1; } |
|
5 6 7 8 9 |
|
for i in range(5, 10): print(i) |
|
|
for(i=5; i < 10; i+=1) ...; |
|
| |
|
for(i=5; i <= 9; i+=1) ...; |
|
|
|
i=5 while(i < 10): ...; i+=1 |
|
|
i=5; while(i < 10) { ...; i+=1; } |
|
|
|
i=5 while(i <= 9): print(i) i+=1 |
|
|
i=5; while(i <= 9) { ...; i+=1; } |
|
0 2 4 6 8 |
|
for i in range(0, 10, 2): print(i) |
|
|
for(i=0; i < 10; i+=2) ...; |
|
| |
|
for(i=0; i <= 8; i+=2) ...; |
|
|
|
i=0 while(i < 10): print(i) i+=2 |
| … |
|
|
i=0 while(i <= 8): print(i) i+=2 |
| … |
9 8 7 6 5 4 3 2 1 0 |
|
for i in range(9, -1, -1): print(i) |
|
|
for(i=9; i > -1; i-=1) ...; |
|
| |
|
for(i=9; i >= 0; i-=1) ...; |
|
|
|
i=9 while(i > -1): print(i) i-=1 |
| … |
|
|
i=9 while(i >= 0): print(i) i-=1 |
| … |
9 7 5 3 1 |
|
for i in range(9, 0, -2): print(i) |
|
|
for(i=9; i > 0; i-=2) ...; |
|
| |
|
for(i=9; i >= 1; i-=2) ...; |
|
|
|
i=9 while(i > 0): print(i) i-=2 |
| … |
|
|
i=9 while(i >= 1): print(i) i-=2 |
|
|
i=9; while(i >= 1) { ...; i-=2; } |
|
Nei linguaggi che derivano dal C si riduce ulteriormente il codice con
- i++ (oppure ++i) invece di i+=1
- i-- (oppure --i) invece di i-=1
break
continue
else
Le ripetizioni accettano anche le istruzioni di interruzione break e continue e la clausola else
for … in … | while … | |
---|
|
for i in LISTA: istr_1 ... if(...): ... continue ... istr_n |
|
|
while(a > 0): istr_1 ... if(...): ... continue ... istr_n |
| L’istruzione continue forza l’esecuzione del prossimo passo del ciclo.
Le istruzioni successive della sequenza non verranno eseguite.
|
|
for i in LISTA: istr_1 ... if(...): ... break ... istr_n |
|
|
while(a > 0): istr_1 ... if(...): ... break ... istr_n |
| L’istruzione break all’interno di una sequenza controllata da while o for interrompe l’esecuzione del ciclo.
Le istruzioni successive della sequenza non verranno eseguite.
|
|
for i in LISTA: istr_1 ... if(...): ... break ... istr_n else: ISTR_1 ... ISTR_m |
|
|
while(a > 0): istr_1 ... if(...): ... break ... istr_n else: ISTR_1 ... ISTR_m |
| La sequenza controllata da else viene eseguita se non si è attivata l’istruzione break. |