while loop in Python. Come funziona, esempi di utilizzo

I loop sono uno degli strumenti principali di qualsiasi lingua. Ci sono due cicli di base in Python, uno dei quali è while. Consideralo, e anche per una migliore comprensione dell'immagine, un altro. In effetti, rispetto a qualcosa di simile, è molto più facile capire qualsiasi materiale, no?

Il concetto di ciclo

Un ciclo è necessario quando una determinata azione deve essere eseguita più volte. Questo è molto semplicistico, perché in realtà la gamma di applicazioni per i cicli è molto più ampia. Esistono due tipi principali di loop in Python: for e while. Il più popolare è per.

Oltre ad azioni specifiche, puoi eseguire il loop di diversi pezzi di codice fino a un certo punto. Questo può essere un certo numero di volte o finché una particolare condizione è vera.

Prima di iniziare a capire i tipi di loop e mentre, in particolare, dobbiamo ancora capire cos'è l'iterazione. Si tratta di una ripetizione di un'azione o di una sequenza di azioni durante il ciclo corrente all'interno dell'esecuzione dell'applicazione corrente.

Ciclo per

Il nostro ciclo For non è un contatore, come in molte altre lingue. Il suo compito è enumerare una certa sequenza di valori. Cosa significa questo? Diciamo di avere un elenco di elementi. Innanzitutto, il ciclo prende il primo, il secondo, il terzo e così via.

Il vantaggio di questo ciclo in Python è che non è necessario determinare l'indice dell'elemento per sapere quando uscire dal ciclo. Tutto avverrà automaticamente.

>>> spisok = [10, 40, 20, 30]

>>> per l'elemento in spisok:

… stampa(elemento + 2)

...

12

42

22

32

Nel nostro esempio abbiamo utilizzato la variabile elemento dopo il comando for. In generale, il nome può essere qualsiasi cosa. Ad esempio, una designazione popolare è i. E ad ogni iterazione, a questa variabile verrà assegnato un oggetto specifico dall'elenco, che abbiamo chiamato la parola appropriata.

Nel nostro caso, l'elenco è una sequenza di numeri 10,40,20,30. Ad ogni iterazione, nella variabile appare il valore corrispondente. Ad esempio, non appena il ciclo inizia, la variabile elemento viene assegnato il valore 10. Nell'iterazione successiva, il dieci diventa il numero 40, la terza volta diventa il numero 20 e infine, nell'ultima iterazione del ciclo, diventa 30.

Il segnale per la fine del ciclo è la fine degli elementi nell'elenco.

Se hai bisogno del ciclo per eseguire una classica enumerazione di valori, come in altri linguaggi di programmazione, dovresti creare una lista con una sequenza di numeri naturali fino al valore di cui abbiamo bisogno.

>>> spisok = [1,2,3,4,5]

Oppure usa la funzione lente(), per determinare la lunghezza della lista. Ma in questo caso è meglio usare un loop mentre, perché non è necessario utilizzare una variabile.

Se è necessario modificare la sequenza di valori nell'elenco, eseguire il ciclo per e qui viene in soccorso. Per fare ciò, ad ogni iterazione, ad ogni elemento della lista deve essere assegnato un valore appropriato.

Mentre il ciclo

A differenza del ciclo per, che esegue semplicemente un'iterazione sui valori della sequenza, il ciclo while ha più usi. Il nome di questo tipo di cicli è tradotto come “ancora”. Cioè, "fino a".

Questo è un ciclo universale che si trova in tutti i linguaggi di programmazione. E in qualche modo assomiglia a un operatore condizionale tasso, che esegue un controllo per vedere se una determinata condizione è soddisfatta. Solo in contrasto con l'operatore condizionale, while esegue il controllo ad ogni iterazione, non solo una volta. E solo se la condizione è falsa, il ciclo termina e il comando che lo segue viene eseguito. In parole semplici, se la situazione in cui lavora non è più valida.

Se disegniamo un ciclo while semplicisticamente, questo viene fatto utilizzando un tale schema.while loop in Python. Come funziona, esempi di utilizzo

Il ramo principale del programma (che viene eseguito al di fuori del ciclo) è rappresentato in questa figura con rettangoli blu. Il turchese rappresenta il corpo del ciclo. A sua volta, un rombo è una condizione che viene verificata ad ogni iterazione.

Ciclo while può comportare due eccezioni:

  1. Se all'inizio del ciclo l'espressione logica non restituisce true, semplicemente non inizia, essendo stata completata prima dell'esecuzione. In generale, questa situazione è normale, perché in determinate circostanze l'applicazione potrebbe non prevedere la presenza di espressioni nel corpo del ciclo.
  2. Se l'espressione è sempre vera, ciò può portare a un ciclo. Cioè, allo scorrere infinito del ciclo. Pertanto, in tali programmi, dovrebbe sempre esserci un'istruzione di uscita dal ciclo o dal programma. Tuttavia, questa situazione si verificherà se il programma è stato in grado di determinare la verità o la falsità di una particolare condizione. Se non è riuscita a farlo, viene restituito un errore con la chiusura del programma. Oppure puoi gestire l'errore e quindi, se si verifica, verrà eseguito un determinato codice.

Ci può essere un numero enorme di opzioni su come gestire un errore. Ad esempio, il programma potrebbe chiedere all'utente di inserire i dati correttamente. Quindi, se una persona ha indicato un numero negativo dove può essere solo positivo, o ha inserito lettere dove dovrebbero esserci solo numeri, il programma può parlarne.

Mentre esempi di loop

Ecco un esempio di codice che gestisce un errore in questo caso.

n = input("Inserisci un numero intero: ") 

while tipo(n) != int:

    Provare:

        n = intero(n)

    tranne ValueError:

        print("Inserimento errato!")

        n = input("Inserisci un numero intero: ") 

se n % 2 == 0:

    print("Anche")

altro:

    print("Dispari")

Tieni presente che Python usa i due punti per dichiarare costrutti di codice complessi.

Nel codice sopra, abbiamo definito come condizione che dovremmo verificare se il numero è un numero intero. Se sì, viene restituito false. Se no, allora vero.

Nella seconda parte del codice, dove viene utilizzato l'operatore if, abbiamo utilizzato l'operatore % per trovare il resto dopo l'operazione di divisione. Il prossimo passo è controllare se il numero è pari. In caso contrario, in questo caso il resto è uno. Di conseguenza, il numero è dispari. 

In parole povere, il codice sopra controlla prima se la stringa inserita dall'utente è un numero. In caso affermativo, viene effettuato un secondo controllo per vedere se c'è un resto della divisione per due. Ma il secondo blocco non verrà eseguito finché il valore inserito dall'utente non sarà numerico.

Cioè, il ciclo verrà eseguito regolarmente finché non si verifica la condizione. In questa situazione, funziona così. 

Cioè, puoi andare dall'opposto: eseguire il ciclo di una determinata azione finché l'evento non diventa falso.

Analisi del codice

Ora vediamo più in dettaglio come funziona questo codice. Per fare ciò, lo analizzeremo passo dopo passo.

  1. Innanzitutto, l'utente inserisce una stringa, che viene accettata dalla variabile n. 
  2. Usando un ciclo while viene verificato il tipo di questa variabile. Sulla prima voce, non è uguale int. Pertanto, come risultato del test, si trova che questa condizione è vera. Pertanto, viene inserito il corpo del ciclo.
  3. Con l'aiuto di un operatore prova stiamo cercando di convertire una stringa in un numero. In tal caso, non si verificherà alcun errore. Di conseguenza, non è necessario elaborarlo. Pertanto, l'interprete torna all'inizio del ciclo e, in base ai risultati del controllo, risulta che è diventato un numero intero. Quindi andiamo al passaggio 7
  4. Se la conversione non riesce, viene generato un ValueError. In questo caso, il flusso del programma viene inviato al gestore eccetto.
  5. L'utente inserisce un nuovo valore, che viene assegnato alla variabile n.
  6. L'interprete torna al passaggio 2 e ricontrolla. Se è un valore intero, andare al passaggio 7. In caso contrario, la conversione viene tentata di nuovo secondo il passaggio 3.
  7. Con l'aiuto di un operatore if Determina se c'è un resto dopo aver diviso un numero per 2. 
  8. In caso contrario, viene restituito il testo "pari".
  9. In caso contrario, viene restituito il testo "dispari".

Consideriamo ora un esempio del genere. Cerchi di determinare quante volte passerà questo ciclo?

totale = 100 

i = 0

mentre io < 5:

    n = int(input())

    totale = totale — n

    i = i + 1 

print(“Rimanente”, totale)

La risposta corretta è 5. Inizialmente, il valore della variabile i – zero. L'interprete controlla se la variabile è uguale i 4 o meno. Se sì, viene restituito il valore. veroe il ciclo viene eseguito di conseguenza. Il valore viene aumentato di uno.

Dopo la prima iterazione, il valore della variabile diventa 1. Viene eseguito un controllo e il programma comprende che questo numero è di nuovo inferiore a 5. Di conseguenza, il corpo del ciclo viene eseguito per la seconda volta. Poiché i passaggi sono simili, anche il valore viene aumentato di uno e la variabile è ora uguale a 2.

Anche questo valore è inferiore a cinque. Quindi il ciclo viene eseguito una terza volta, aggiunto alla variabile i 1 e gli viene assegnato il valore 3. Anche questo è inferiore a cinque. E così si arriva alla sesta iterazione del ciclo, in corrispondenza del quale il valore della variabile i è uguale a 5 (dopotutto, in origine era zero, per quanto ne ricordiamo). Di conseguenza, questa condizione non supera il test e il ciclo viene automaticamente terminato e viene eseguito il passaggio al passaggio successivo, che è al di fuori di esso (o la terminazione del programma, se non sono previsti i passaggi successivi).

Il ciclo può avvenire anche nella direzione opposta. Ecco un esempio di codice in cui, ad ogni iterazione successiva, ne viene sottratto uno dal valore corrente della variabile. 

totale = 100 

mentre totale > 0:

    n = int(input())

    totale = totale — n 

print("Risorsa esaurita")

Prova a indovinare cosa fa questo programma! Immaginalo in una variabile totale vengono memorizzate le informazioni sulla risorsa del programma. Ogni volta l'interprete controlla se la risorsa esiste. In caso contrario, viene visualizzato il testo "Risorsa esaurita" e il programma si chiude. E ad ogni iterazione del ciclo, la risorsa diminuisce del numero specificato dall'utente.

E ora i compiti. Prova a modificare il codice sopra in modo che la variabile non possa diventare fisicamente negativa. 

Commenti

  1. codice si ahaan usoo gudbi

Lascia un Commento