mens loop i Python. Hvordan det fungerer, eksempler på bruk

Loops er et av hovedverktøyene til ethvert språk. Det er to grunnleggende løkker i Python, hvorav den ene er mens. Vurder det, og også for en bedre forståelse av bildet, en til. Faktisk, sammenlignet med noe lignende, er det mye lettere å forstå noe materiale, er det ikke?

Konseptet med en syklus

En loop er nødvendig når en bestemt handling må utføres flere ganger. Dette er veldig forenklet, fordi bruksområdet for sykluser i virkeligheten er mye bredere. Det er to hovedtyper av løkker i Python: for og while. Den mest populære er for.

I tillegg til spesifikke handlinger, kan du loope forskjellige stykker kode opp til et visst punkt. Dette kan være et visst antall ganger, eller så lenge en bestemt tilstand er sann.

Før vi begynner å forstå typene løkker, og spesielt, må vi fortsatt forstå hva iterasjon er. Dette er én repetisjon av en handling eller sekvens av handlinger i løpet av den gjeldende syklusen innenfor gjeldende programkjøring.

Sykle for

For-løkken vår er ikke en teller, som på mange andre språk. Dens oppgave er å telle opp en viss rekkefølge av verdier. Hva betyr dette? La oss si at vi har en liste over elementer. Først tar løkken den første, andre, tredje og så videre.

Fordelen med denne løkken i Python er at du ikke trenger å bestemme indeksen til elementet for å vite når du skal gå ut av løkken. Alt vil bli gjort automatisk.

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

>>> for element i spisok:

… print(element + 2)

...

12

42

22

32

I vårt eksempel brukte vi variabelen element etter kommandoen for. Generelt kan navnet være hva som helst. For eksempel er en populær betegnelse i. Og med hver iterasjon vil denne variabelen bli tildelt et spesifikt objekt fra listen, som vi kalte det passende ordet.

I vårt tilfelle er listen en sekvens av tall 10,40,20,30. Ved hver iterasjon vises den tilsvarende verdien i variabelen. For eksempel, så snart loopen starter, variabelen element verdien 10 er tildelt. Ved neste iterasjon blir de ti til tallet 40, tredje gang blir det til tallet 20, og til slutt, ved siste iterasjon av loopen, blir det til 30.

Signalet for slutten av syklusen er slutten av elementene i listen.

Hvis du trenger løkken for å utføre en klassisk opptelling av verdier, som i andre programmeringsspråk, bør du lage en liste med en sekvens av naturlige tall opp til verdien vi trenger.

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

Eller bruk funksjonen len(), for å bestemme lengden på listen. Men i dette tilfellet er det bedre å bruke en løkke samtidig som, fordi det ikke er nødvendig å bruke en variabel.

Hvis du trenger å endre rekkefølgen av verdier i listen, sløyfe forum og her kommer til unnsetning. For å gjøre dette, ved hver iterasjon, må hvert element i listen tildeles en passende verdi.

Mens Loop

I motsetning til syklusen forum, som ganske enkelt itererer over verdiene til sekvensen, loopen mens har flere bruksområder. Navnet på denne typen sykluser er oversatt som "ennå". Det vil si "inntil".

Dette er en universell sløyfe som finnes på alle programmeringsspråk. Og på noen måter ligner det en betinget operatør barlind, som utfører en sjekk for å se om en bestemt betingelse er oppfylt. Bare i motsetning til den betingede operatøren, mens utfører kontrollen ved hver iterasjon, ikke bare én gang. Og bare hvis betingelsen er falsk, avsluttes løkken og kommandoen som følger den blir utført. Med enkle ord, hvis situasjonen han jobber i ikke lenger er gyldig.

Hvis vi tegner en syklus mens forenklet sett gjøres dette ved hjelp av en slik ordning.mens loop i Python. Hvordan det fungerer, eksempler på bruk

Hovedgrenen til programmet (som går utenfor loopen) er avbildet i denne figuren med blå rektangler. Turkis representerer kroppen av syklusen. På sin side er en rombe en tilstand som kontrolleres ved hver iterasjon.

Syklus mens kan resultere i to unntak:

  1. Hvis det logiske uttrykket i begynnelsen av løkken ikke returnerer sant, begynner det ganske enkelt ikke, etter å ha fullført før utførelse. Generelt er denne situasjonen normal, fordi under visse omstendigheter kan det hende at applikasjonen ikke sørger for tilstedeværelsen av uttrykk i løkkelegemet.
  2. Hvis uttrykket alltid er sant, kan dette føre til en loop. Det vil si til den endeløse rullingen av syklusen. Derfor bør det i slike programmer alltid være en exit-setning fra loopen eller programmet. Imidlertid vil denne situasjonen oppstå hvis programmet var i stand til å fastslå sannheten eller usannheten til en bestemt tilstand. Hvis hun ikke klarte å gjøre dette, returneres en feil ved avslutning av programmet. Eller du kan håndtere feilen, og så, hvis den oppstår, vil en viss kode bli utført.

Det kan være et stort antall alternativer for hvordan man skal håndtere en feil. For eksempel kan programmet be brukeren om å legge inn data riktig. Så hvis en person indikerte et negativt tall der det bare kan være positivt, eller skrev inn bokstaver der bare tall skal være, kan programmet fortelle om det.

Mens Loop Eksempler

Her er et eksempel på kode som håndterer en feil i dette tilfellet.

n = input(“Skriv inn et heltall: “) 

mens type(n) != int:

    prøve:

        n = int(n)

    unntatt ValueError:

        print ("Feil oppføring!")

        n = input(“Skriv inn et heltall: “) 

hvis n % 2 == 0:

    print(“Selv”)

ellers:

    print(“Ulige”)

Husk at Python bruker kolon for å deklarere komplekse kodekonstruksjoner.

I koden ovenfor definerte vi som en betingelse at vi skulle sjekke om tallet er et heltall. Hvis ja, returneres false. Hvis ikke, så sant.

I den andre delen av koden, hvor operatøren brukes if, brukte vi %-operatoren for å finne resten etter divisjonsoperasjonen. Neste trinn er å sjekke om tallet er partall. Hvis ikke, er resten en i dette tilfellet. Følgelig er tallet oddetall. 

Enkelt sagt, koden ovenfor sjekker først om strengen som er angitt av brukeren er et tall. Hvis ja, blir det foretatt en ny sjekk for å se om det er en rest av divisjonen med to. Men den andre blokken vil ikke bli utført før verdien angitt av brukeren er numerisk.

Det vil si at løkken vil bli utført regelmessig til tilstanden oppstår. I denne situasjonen fungerer det slik. 

Det vil si at du kan gå fra det motsatte: loop en bestemt handling til hendelsen blir falsk.

Kodeparsing

La oss nå se mer detaljert hvordan denne koden fungerer. For å gjøre dette, vil vi analysere det trinn for trinn.

  1. Først legger brukeren inn en streng, som aksepteres av variabelen n. 
  2. Ved hjelp av en løkke mens typen av denne variabelen er sjekket. På den første oppføringen er det ikke likt int. Derfor, som et resultat av testen, er det funnet at denne tilstanden er sann. Derfor legges løkken inn.
  3. Med hjelp av en operatør prøve vi prøver å konvertere en streng til et tall. Hvis dette gjøres, oppstår ingen feil. Følgelig er det ikke nødvendig å behandle det. Derfor går tolken tilbake til begynnelsen av løkken, og i henhold til resultatene av kontrollen viser det seg at det har blitt et heltall. Så la oss gå til trinn 7
  4. Hvis konverteringen mislyktes, vises en ValueError. I dette tilfellet sendes programflyten til unntatt-behandleren.
  5. Brukeren legger inn en ny verdi, som er tilordnet variabelen n.
  6. Tolken går tilbake til trinn 2 og sjekker på nytt. Hvis det er en heltallsverdi, gå til trinn 7. Hvis ikke, forsøkes konverteringen på nytt i henhold til trinn 3.
  7. Med hjelp av en operatør if Bestemmer om det er en rest etter å ha delt et tall med 2. 
  8. Hvis ikke, returneres teksten "even".
  9. Hvis ikke, returneres teksten "odd".

Tenk nå på et slikt eksempel. Prøv å finne ut hvor mange ganger denne syklusen vil gå gjennom?

totalt = 100 

i = 0

mens jeg <5:

    n = int(input())

    total = total — n

    i = i + xnumx 

print(“Resterende”, totalt)

Riktig svar er 5. Innledningsvis verdien av variabelen i – null. Tolken sjekker om variabelen er lik i 4 eller mindre. Hvis ja, returneres verdien. sant, og løkken utføres deretter. Verdien økes med én.

Etter den første iterasjonen blir verdien av variabelen 1. En sjekk utføres, og programmet forstår at dette tallet igjen er mindre enn 5. Følgelig blir løkkelegemet utført for andre gang. Siden trinnene er like, økes også verdien med én, og variabelen er nå lik 2.

Denne verdien er også mindre enn fem. Deretter utføres loopen en tredje gang, lagt til variabelen i 1 og den tildeles verdien 3. Dette er igjen mindre enn fem. Og så kommer det til den sjette iterasjonen av løkken, hvor verdien av variabelen i er lik 5 (tross alt var det opprinnelig null, så vidt vi husker). Følgelig består ikke denne tilstanden testen, og sløyfen avsluttes automatisk og overgangen til neste trinn, som er utenfor det (eller programavslutning, hvis følgende trinn ikke er gitt), utføres.

Syklusen kan også skje i motsatt retning. Her er et eksempel på kode hvor man ved hver påfølgende iterasjon trekkes fra den gjeldende verdien av variabelen. 

totalt = 100 

mens totalt > 0:

    n = int(input())

    total = total — n 

print(“Ressursen oppbrukt”)

Prøv å gjette hva dette programmet gjør! Tenk deg det i en variabel total informasjon om programressursen lagres. Hver gang sjekker tolken om ressursen finnes. Hvis ikke, vises teksten "Ressurs oppbrukt" og programmet lukkes. Og med hver iterasjon av løkken, reduseres ressursen med tallet som brukeren spesifiserer.

Og nå lekser. Prøv å endre koden ovenfor slik at variabelen ikke fysisk kan bli negativ. 

4 Kommentarer

  1. si kode ahaan usoo gudbi

Legg igjen en kommentar