medan loop i Python. Hur det fungerar, exempel på användning

Slingor är ett av de viktigaste verktygen för alla språk. Det finns två grundläggande loopar i Python, varav en är while. Tänk på det, och även för en bättre förståelse av bilden, en till. Ja, i jämförelse med något liknande är det mycket lättare att förstå något material, eller hur?

Begreppet en cykel

En loop behövs när en viss åtgärd måste utföras flera gånger. Detta är mycket förenklat, eftersom tillämpningsområdet för cykler i verkligheten är mycket bredare. Det finns två huvudtyper av loopar i Python: for och while. Den mest populära är för.

Förutom specifika åtgärder kan du loopa olika delar av kod upp till en viss punkt. Detta kan vara ett visst antal gånger, eller så länge som ett visst tillstånd är sant.

Innan vi börjar förstå typerna av slingor och i synnerhet, måste vi fortfarande förstå vad iteration är. Detta är en upprepning av en åtgärd eller sekvens av åtgärder under den aktuella cykeln inom den aktuella applikationskörningen.

Cykla för

Vår For-loop är inte en disk, som på många andra språk. Dess uppgift är att räkna upp en viss sekvens av värden. Vad betyder det här? Låt oss säga att vi har en lista med element. Först tar slingan första, andra, tredje och så vidare.

Fördelen med denna loop i Python är att du inte behöver bestämma elementets index för att veta när du ska lämna loopen. Allt kommer att göras automatiskt.

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

>>> för element i spisok:

… print(element + 2)

.

12

42

22

32

I vårt exempel använde vi variabeln elementet efter kommandot för. I allmänhet kan namnet vara vad som helst. Till exempel är en populär beteckning i. Och med varje iteration kommer denna variabel att tilldelas ett specifikt objekt från listan, som vi kallade det lämpliga ordet.

I vårt fall är listan en sekvens av nummer 10,40,20,30. Vid varje iteration visas motsvarande värde i variabeln. Till exempel, så snart loopen startar, variabeln elementet värdet 10 tilldelas. Vid nästa iteration förvandlas tion till siffran 40, tredje gången blir den till siffran 20, och slutligen, vid den sista iterationen av slingan, förvandlas den till 30.

Signalen för slutet av cykeln är slutet av elementen i listan.

Om du behöver loopen för att utföra en klassisk uppräkning av värden, som i andra programmeringsspråk, bör du skapa en lista med en sekvens av naturliga tal upp till det värde vi behöver.

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

Eller använd funktionen len(), för att bestämma längden på listan. Men i det här fallet är det bättre att använda en slinga medan, eftersom det inte finns något behov av att använda en variabel.

Om du behöver ändra sekvensen av värden i listan, loop för och här kommer till undsättning. För att göra detta, vid varje iteration, måste varje element i listan tilldelas ett lämpligt värde.

Medan Loop

Till skillnad från cykeln för, som helt enkelt itererar över värdena för sekvensen, loopen medan har fler användningsområden. Namnet på denna typ av cykler översätts till "ännu". Det vill säga "tills".

Detta är en universell loop som finns i alla programmeringsspråk. Och på något sätt liknar den en villkorlig operatör idegran, som gör en kontroll för att se om ett visst villkor är uppfyllt. Endast i motsats till den villkorliga operatorn, medan utför kontrollen vid varje iteration, inte bara en gång. Och bara om villkoret är falskt, slutar loopen och kommandot som följer efter det exekveras. Med enkla ord, om situationen där han arbetar inte längre är giltig.

Om vi ​​ritar en cykel medan förenklat görs detta med ett sådant schema.medan loop i Python. Hur det fungerar, exempel på användning

Huvudgrenen av programmet (som körs utanför slingan) avbildas i denna figur med blå rektanglar. Turkos representerar kroppen av cykeln. I sin tur är en romb ett tillstånd som kontrolleras vid varje iteration.

Cykel medan kan resultera i två undantag:

  1. Om i början av slingan det logiska uttrycket inte returnerar sant, börjar det helt enkelt inte, efter att ha slutförts före exekvering. I allmänhet är denna situation normal, eftersom applikationen under vissa omständigheter kanske inte ger förekomsten av uttryck i loopkroppen.
  2. Om uttrycket alltid är sant kan detta leda till en loop. Det vill säga till cykelns ändlösa rullning. Därför bör det i sådana program alltid finnas en exit-sats från slingan eller programmet. Denna situation kommer dock att uppstå om programmet kunde fastställa sanningen eller falskheten i ett visst tillstånd. Om hon misslyckades med att göra detta, returneras ett felmeddelande när programmet avslutas. Eller så kan du hantera felet och sedan, om det inträffar, kommer viss kod att exekveras.

Det kan finnas ett stort antal alternativ för hur man ska hantera ett fel. Till exempel kan programmet be användaren att mata in data korrekt. Så om en person angav ett negativt tal där det bara kan vara positivt, eller skrev in bokstäver där bara siffror ska vara, kan programmet berätta om det.

Medan loop exempel

Här är ett exempel på kod som hanterar ett fel i det här fallet.

n = input("Ange ett heltal: ") 

medan typ(n) != int:

    prova:

        n = int(n)

    utom ValueError:

        print ("Fel post!")

        n = input("Ange ett heltal: ") 

om n % 2 == 0:

    print(”Även”)

annan:

    print(”Uda”)

Tänk på att Python använder kolon för att deklarera komplexa kodkonstruktioner.

I koden ovan definierade vi som ett villkor att vi skulle kontrollera om talet är ett heltal. Om ja, returneras false. Om inte, så sant.

I den andra delen av koden, där operatören används if, använde vi operatorn % för att hitta resten efter divisionsoperationen. Nästa steg är att kontrollera om siffran är jämn. Om inte, är resten en i det här fallet. Följaktligen är siffran udda. 

Enkelt uttryckt kontrollerar ovanstående kod först om strängen som användaren angett är ett nummer. Om ja, görs en andra kontroll för att se om det finns en återstod av divisionen med två. Men det andra blocket kommer inte att exekveras förrän värdet som angetts av användaren är numeriskt.

Det vill säga, slingan kommer att exekveras regelbundet tills tillståndet inträffar. I det här läget fungerar det så här. 

Det vill säga, du kan gå från motsatsen: loopa en viss handling tills händelsen blir falsk.

Kodanalys

Låt oss nu se mer i detalj hur den här koden fungerar. För att göra detta kommer vi att analysera det steg för steg.

  1. Först anger användaren en sträng, som accepteras av variabeln n. 
  2. Använda en slinga medan typen av denna variabel kontrolleras. På den första posten är det inte lika int. Därför, som ett resultat av testet, har det visat sig att detta tillstånd är sant. Därför matas loopkroppen in.
  3. Med hjälp av en operatör prova vi försöker konvertera en sträng till ett tal. Om detta görs uppstår inget fel. Följaktligen finns det inget behov av att bearbeta det. Därför återgår tolken till början av slingan, och enligt resultatet av kontrollen visar det sig att det har blivit ett heltal. Så låt oss gå till steg 7
  4. Om konverteringen misslyckades visas ett ValueError. I detta fall skickas programflödet till except-hanteraren.
  5. Användaren anger ett nytt värde som tilldelas variabeln n.
  6. Tolken går tillbaka till steg 2 och kontrollerar igen. Om det är ett heltalsvärde, gå till steg 7. Om inte görs konverteringsförsöket igen enligt steg 3.
  7. Med hjälp av en operatör if Bestämmer om det finns en rest efter att ha dividerat ett tal med 2. 
  8. Om inte, returneras texten "jämnt".
  9. Om inte, returneras texten "udda".

Betrakta nu ett sådant exempel. Försök att avgöra hur många gånger denna cykel kommer att gå igenom?

totalt = 100 

i = 0

medan jag <5:

    n = int(ingång())

    total = total — n

    i = i + 1 

print(”Återstående”, totalt)

Rätt svar är 5. Inledningsvis värdet på variabeln i – noll. Tolken kontrollerar om variabeln är lika i 4 eller mindre. Om ja, returneras värdet. sann, och slingan exekveras därefter. Värdet ökas med ett.

Efter den första iterationen blir variabelns värde 1. En kontroll utförs och programmet förstår att detta nummer återigen är mindre än 5. Följaktligen exekveras loopkroppen för andra gången. Eftersom stegen är lika, ökas också värdet med ett och variabeln är nu lika med 2.

Detta värde är också mindre än fem. Sedan exekveras loopen en tredje gång, läggs till variabeln i 1 och den tilldelas värdet 3. Detta är återigen mindre än fem. Och så kommer det till den sjätte iterationen av slingan, vid vilken variabelns värde i är lika med 5 (det var trots allt ursprungligen noll, så vitt vi minns). Följaktligen klarar inte detta tillstånd testet, och slingan avslutas automatiskt och övergången till nästa steg, som ligger utanför det (eller programavslutning, om följande steg inte tillhandahålls), utförs.

Cykeln kan också ske i motsatt riktning. Här är ett exempel på kod där, med varje efterföljande iteration, en subtraheras från det aktuella värdet på variabeln. 

totalt = 100 

medan totalt > 0:

    n = int(ingång())

    total = total — n 

print(”Resursen är slut”)

Försök gissa vad det här programmet gör! Föreställ dig det i en variabel Totalt information om programresursen lagras. Varje gång kontrollerar tolken om resursen finns. Om inte, visas texten "Resursen är slut" och programmet stängs. Och med varje iteration av loopen minskar resursen med det antal som användaren anger.

Och nu läxor. Försök att ändra ovanstående kod så att variabeln inte fysiskt kan bli negativ. 

3 Kommentarer

  1. si kod ahaan usoo gudbi

Kommentera uppropet