9.1 Ciclo condizionale
Il ciclo for
è perfetto quando sappiamo esattamente quante volte vogliamo eseguire il blocco di comandi del nostro ciclo. Ma non è sempre così. Circa la metà delle volte, il blocco di comandi bisogna eseguirlo finché è vera una certa condizione (regola).
Per questo motivo in Python c'è il ciclo
while
. La sua sintassi è ancora più semplice di quella del ciclo for:
while condizione:
comando1
comando1
comandoN
Il ciclo continuerà fino a quando la condizione è vera.
Importante! Per evitare che il ciclo si esegua all'infinito, qualcosa all'interno del blocco di comandi deve influenzare la condizione. In modo che questa condizione possa diventare falsa e il ciclo si concluda.
Esempio:
Esempio | Spiegazione |
---|---|
|
Il ciclo stamperà sullo schermo i numeri 0 1 2 3 4 |
In un ciclo while
si ripetono continuamente due cose:
- Viene verificata la condizione.
- Viene eseguito il blocco di comandi.
Se la condizione era vera, verrà eseguito il blocco di comandi. Se improvvisamente la condizione è falsa (anche se il blocco di comandi non è stato eseguito nemmeno una volta), il ciclo terminerà.
Ancora un esempio di ciclo while
, combinato con l'input di un numero sconosciuto di dati dall'utente:
Esempio | Spiegazione |
---|---|
|
Il ciclo stamperà sullo schermo tutti i dati, finché l'utente non inserisce la parola 'exit'. Dopodiché stamperà 'exit' e terminerà. |
9.2 Operatore break
In Python, l'operatore break
viene utilizzato per terminare immediatamente l'esecuzione di un ciclo
while
o di un ciclo for
. Questo operatore è estremamente utile quando è necessario uscire dal ciclo prima della sua normale conclusione per qualche condizione.
L'uso di break
aumenta la flessibilità nella gestione del flusso di esecuzione del programma, permettendo di reagire a condizioni dinamicamente variabili durante l'esecuzione.
Uso principale:
for num in range(10):
if num == 5:
break # Termina il ciclo non appena num raggiunge 5
print(num)
In questo esempio, il ciclo stamperà i numeri da 0 a 4. Non appena num raggiunge 5, il ciclo viene interrotto dall'operatore break
.
Uso nei cicli infiniti:
while True:
response = input("Inserisci 'exit' per uscire: ")
if response == 'exit':
break
Qui, break
viene utilizzato per uscire da un ciclo infinito quando l'utente inserisce 'exit'.
L'operatore break
viene anche spesso utilizzato per interrompere l'esecuzione di cicli annidati, gestire situazioni eccezionali che richiedono una cessazione immediata delle operazioni, e per interrompere processi in applicazioni multilivello o di rete.
Ad esempio, in compiti di ricerca o ordinamento, dove dopo aver trovato l'elemento desiderato non ha più senso continuare l'esecuzione del ciclo:
elements = [1, 2, 3, -99, 5]
# Cerca il primo elemento negativo
for element in elements:
if element < 0:
print("Elemento negativo trovato: ", element)
break
Le migliori pratiche includono l'uso intelligente di break
, per non complicare la logica del programma e non renderlo difficile da comprendere. È buona pratica commentare le ragioni dell'interruzione del ciclo, specialmente se non sono ovvie dal contesto.
L'uso di break
dovrebbe essere giustificato e ragionevole. Ad esempio, per migliorare la leggibilità e l'efficienza del codice, non solo per 'rompere' la logica. L'uso efficace di questo operatore può migliorare notevolmente le prestazioni dei programmi, specialmente in algoritmi con calcoli intensivi.
9.3 Operatore continue
L'operatore continue in Python è uno strumento potente per gestire il flusso di esecuzione dei cicli.
Salta il resto del codice nell'iterazione corrente del ciclo
e passa all'iterazione successiva. Questo operatore è spesso utilizzato nei cicli
for
e while
per saltare determinate condizioni senza interrompere l'intero ciclo.
Basi dell'uso dell'operatore continue
Ecco come funziona continue in un ciclo semplice:
for i in range(10):
if i % 2 == 0:
continue
print(i)
In questo esempio, il ciclo stampa solo i numeri dispari da 1 a 9. Ogni volta che i
risulta pari (si divide per 2 senza resto), l'operatore
continue
viene attivato, saltando la chiamata alla funzione
print()
e passando all'iterazione successiva.
Uso di continue
in scenari reali
Filtraggio dati: continue
può essere usato per
filtrare preliminarmente i dati prima di eseguire operazioni più complesse nel
ciclo.
data = ["apple", "banana", "", "cherry", "date"]
for fruit in data:
if not fruit:
continue # Salta le stringhe vuote
print(fruit.capitalize())
Salto di condizioni specifiche: Particolarmente utile in situazioni in cui è necessario saltare determinati elementi in base a condizioni complesse.
scores = [92, 85, 99, 78, 82, 100, 67, 88]
for score in scores:
if score < 80:
continue # Salta i punteggi bassi
print("Congratulazioni, il tuo punteggio è: ", score)
L'operatore continue
in Python offre un modo elegante per
semplificare il codice e renderlo più leggibile grazie al salto degli
elementi non conformi nelle iterazioni. Un uso eccessivo di
continue può complicare la comprensione di quali dati vengono
elaborati dal ciclo, specialmente in cicli complessi con molte condizioni. Mantenere un equilibrio ragionevole.
GO TO FULL VERSION