Ciclo while

Python SELF IT
Livello 4 , Lezione 3
Disponibile

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

count = 0
while count < 5:
    print(count)
    count += 1
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

user_input = ""
while user_input != "exit":
    user_input = input("Inserisci 'exit' per uscire: ")
    print(user_input)
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.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION