while loop in Python. Cumu funziona, esempi di usu

I loops sò unu di i principali strumenti di ogni lingua. Ci sò dui cicli basi in Python, unu di i quali hè while. Cunsiderate, è ancu per un megliu capiscenu di u ritrattu, unu di più. In verità, in paragone cù qualcosa simili, hè assai più faciule per capiscenu qualsiasi materiale, ùn hè micca?

U cuncettu di ciclu

Un ciclu hè necessariu quandu una certa azione deve esse realizata parechje volte. Questu hè assai simplista, perchè in a realità a gamma di applicazioni per i cicli hè assai più larga. Ci sò dui tipi principali di loops in Python: for and while. U più pupulare hè per.

In più di l'azzioni specifiche, pudete loop diverse pezzi di codice finu à un certu puntu. Questu pò esse un certu numaru di volte, o finu à chì una cundizione particulare hè vera.

Prima di principià à capisce i tipi di loops è mentri, in particulare, avemu sempre bisognu di capisce ciò chì l'iterazione hè. Questa hè una ripetizione di una azione o sequenza d'azzioni durante u ciclu attuale in l'applicazione attuale.

Ciclu Per

U nostru For loop ùn hè micca un contatore, cum'è in parechje altre lingue. U so compitu hè di enumerà una certa sequenza di valori. Chì significà questu? Dicemu chì avemu una lista di elementi. Prima, u ciclu piglia u primu, secondu, terzu, è cusì.

U vantaghju di stu loop in Python hè chì ùn avete micca bisognu di determinà l'indici di l'elementu per sapè quandu esce da u ciclu. Tuttu serà fattu automaticamente.

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

>>> per l'elementu in spisok:

... stampa (elementu + 2)

...

12

42

22

32

In u nostru esempiu, avemu usatu a variàbbili elementu dopu à u for command. In generale, u nome pò esse qualcosa. Per esempiu, una designazione populari hè i. È cù ogni iterazione, sta variàbile serà assignatu un ughjettu specificu da a lista, chì avemu chjamatu a parolla adattata.

In u nostru casu, a lista hè una sequenza di numeri 10,40,20,30. À ogni iterazione, u valore currispundenti appare in a variàbile. Per esempiu, appena u ciclu principia, a variabile elementu u valore 10 hè attribuitu. In a prossima iterazione, u dece si trasforma in u numeru 40, a terza volta in u numeru 20, è infine, in l'ultima iterazione di u ciclu, si trasforma in 30.

U signale per a fine di u ciculu hè a fine di l'elementi in a lista.

Se avete bisognu di u ciclu per realizà una enumerazione classica di valori, cum'è in altri linguaggi di prugrammazione, avete da creà una lista cù una sequenza di numeri naturali finu à u valore chì avemu bisognu.

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

O utilizate a funzione len(), per determinà a durata di a lista. Ma in questu casu hè megliu aduprà un ciclu mentre, perchè ùn ci hè bisognu di utilizà una variabile.

Sè avete bisognu di cambià a sequenza di valori in a lista, fate un ciclu di è quì vene in salvezza. Per fà questu, à ogni iterazione, ogni elementu di a lista deve esse attribuitu un valore appropritatu.

Mentre Loop

A cuntrariu di u ciculu di, chì simpricimenti iterate nantu à i valori di a sequenza, u ciclu mentri hà più usi. U nome di stu tipu di ciculi hè traduttu cum'è "ancora". Vale à dì "finu à".

Questu hè un ciclu universale chì si trova in tutti i linguaggi di prugrammazione. È in certi modi s'assumiglia à un operatore condicionale tassu, chì eseguisce un cuntrollu per vede s'ellu ci hè una certa cundizione. Solu in cuntrastu cù l'operatore cundizionale, mentri esegue u cuntrollu à ogni iterazione, micca solu una volta. È solu se a cundizione hè falsa, u ciclu finisci è u cumandamentu chì seguita hè eseguitu. In parolle simplici, se a situazione in quale ellu travaglia ùn hè più validu.

Si tracemu un ciculu mentri simplisticamente, questu hè fattu cù un tali schema.while loop in Python. Cumu funziona, esempi di usu

U ramu principale di u prugramma (chì corre fora di u ciclu) hè raffiguratu in questa figura cù rectanguli blu. Turchese rapprisenta u corpu di u ciculu. In turnu, un rombu hè una cundizione chì hè verificata à ogni iterazione.

Ciculu mentri pò purtà à dui eccezzioni:

  1. Se à u principiu di u ciclu l'espressione logica ùn torna micca vera, allura simpricimenti ùn principia micca, dopu avè finitu prima di l'esekzione. In generale, sta situazione hè normale, perchè in certi circustanzi, l'applicazione ùn pò micca furnisce a presenza di espressioni in u corpu di u ciclu.
  2. Se l'espressione hè sempre vera, questu pò purtà à un ciclu. Questu hè, à u scrolling infinitu di u ciculu. Dunque, in tali prugrammi, ci deve esse sempre una dichjarazione di uscita da u ciclu o prugramma. Tuttavia, sta situazione hà da esse se u prugramma hà sappiutu determinà a verità o falsità di una cundizione particulare. S'ellu ùn hà micca fattu questu, allora un errore hè tornatu cù a terminazione di u prugramma. O pudete trattà l'errore, è dopu, s'ellu accade, certu codice serà eseguitu.

Ci pò esse un gran numaru di opzioni per cumu trattà un errore. Per esempiu, u prugramma pò dumandà à l'utilizatore per inserisce dati currettamente. Allora, se una persona hà indicatu un numeru negativu induve pò esse solu pusitivu, o scrivite lettere induve solu numeri deve esse, u prugramma pò dì.

Mentre Esempii Loop

Eccu un esempiu di codice chì tratta un errore in questu casu.

n = input ("Inserisci un interu: ") 

mentri tipu (n) != int:

    Pruvate:

        n = int(n)

    eccettu ValueError:

        print ("Ingressu sbagliatu!")

        n = input ("Inserisci un interu: ") 

se n % 2 == 0:

    stampa ("Ancu")

altru:

    stampa ("Odd")

Tenite in mente chì Python usa i dui punti per dichjarà custruzzioni di codice cumplessu.

In u codice sopra, avemu definitu cum'è una cundizione chì duvemu verificà se u numeru hè un entero. Se sì, allora false hè tornatu. Se no, allora veru.

In a seconda parte di u codice, induve l'operatore hè utilizatu if, avemu usatu l'operatore % per truvà u restu dopu l'operazione di divisione. U prossimu passu hè di verificà se u numeru hè pari. Se no, allora u restu hè unu in questu casu. Per quessa, u numeru hè stranu. 

In termini simplici, u codice sopra prima verifica se a stringa inserita da l'utilizatore hè un numeru. Se sì, allora una seconda verificazione hè fatta per vede s'ellu ci hè un restu di a divisione per dui. Ma u sicondu bloccu ùn serà micca eseguitu finu à chì u valore inseritu da l'utilizatore hè numericu.

Vale à dì, u ciclu serà eseguitu regularmente finu à chì a cundizione accade. In questa situazione, travaglia cusì. 

Questu hè, pudete andà da u cuntrariu: circu una certa azzione finu à chì l'avvenimentu diventa falsu.

Analisi di codice

Avà vedemu in più detail cumu funziona stu codice. Per fà questu, avemu da analizà passu à passu.

  1. Prima, l'utilizatore inserisce una stringa, chì hè accettata da a variàbile n. 
  2. Utilizendu un ciclu mentri u tipu di sta variabile hè verificatu. In a prima entrata, ùn hè micca uguali tram. Dunque, in u risultatu di a prova, si trova chì sta cundizione hè vera. Dunque, u corpu di u ciclu hè inseritu.
  3. Cù l'aiutu di un operatore pruvà Cerchemu di cunvertisce una stringa in un numeru. Se questu hè fattu, ùn ci hè micca errore. Per quessa, ùn ci hè micca bisognu di processà. Per quessa, l'interprete torna à u principiu di u ciclu, è sicondu i risultati di u cuntrollu, risulta chì hè diventatu un entero. Allora andemu à u passu 7
  4. Se a cunversione ùn hè micca successu, allora un ValueError hè ghjittatu. In questu casu, u flussu di u prugramma hè mandatu à u gestore eccettu.
  5. L'utilizatore inserisce un novu valore, chì hè assignatu à a variàbile n.
  6. L'interprete torna à u passu 2 è verifica di novu. S'ellu hè un valore integer, vai à u passu 7. Se no, a cunversione hè pruvatu di novu secondu u passu 3.
  7. Cù l'aiutu di un operatore if Determina s'ellu ci hè un restu dopu a divisione di un numeru per 2. 
  8. Se no, u testu "ancu" hè tornatu.
  9. Se no, u testu "stranu" hè tornatu.

Cunsiderate avà un tali esempiu. Pruvate di determinà quante volte passerà stu ciculu?

tutale = 100 

i = 0

mentri i < 5:

    n = int(input())

    tutale = tutale — n

    i = i + 1 

print("Restante", tutale)

A risposta curretta hè 5. In principiu, u valore di a variàbile i - zeru. L'interprete verifica se a variabile hè uguale i 4 o menu. Se sì, allora u valore hè tornatu. vera, è u ciclu hè eseguitu in cunseguenza. U valore hè aumentatu da unu.

Dopu à a prima iterazione, u valore di a variàbbili diventa 1. Un verificatu hè realizatu, è u prugramma capisce chì stu numeru hè di novu menu di 5. Per quessa, u corpu di loop hè eseguitu per a seconda volta. Siccomu i passi sò simili, u valore hè ancu aumentatu da unu, è a variàbile hè issa uguali à 2.

Stu valore hè ancu menu di cinque. Allora u ciclu hè eseguitu una terza volta, aghjuntu à a variàbile i 1 è hè assignatu u valore 3. Questu hè novu menu di cinque. È cusì vene à a sesta iterazione di u ciclu, à quale u valore di a variàbile i uguali à 5 (dopu tuttu, era uriginale cero, finu à chì avemu ricurdatu). Per quessa, sta cundizione ùn passa micca a prova, è u ciclu hè automaticamente terminatu è a transizione à u prossimu passu, chì hè fora di questu (o a terminazione di u prugramma, se i seguenti passi ùn sò micca furniti), hè realizatu.

U ciculu pò ancu esse in a direzzione opposta. Eccu un esempiu di codice induve, cù ogni iterazione sussegwente, unu hè sottrattu da u valore attuale di a variàbile. 

tutale = 100 

mentri totali > 0:

    n = int(input())

    tutale = tutale — n 

print ("Risorse esaurite")

Pruvate à indovinà ciò chì face stu prugramma! Imagine chì in una variabile tutali infurmazione nantu à a risorsa di u prugramma hè almacenata. Ogni volta chì l'interprete verifica se a risorsa esiste. Se no, allura u testu "Resource exhausted" hè visualizatu è u prugrammu chjude. È cù ogni iterazione di u ciclu, a risorsa diminuite da u numeru chì l'utilizatore specifica.

È avà i travaglii in casa. Pruvate di cambià u codice sopra in modu chì a variabile ùn pò micca diventà fisicamente negativa. 

4 Comments

  1. si codice ahaan usuo gudbi

  2. иси

  3. Bonghjornu

  4. lol

Lascia un Audiolibro